내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Windows Phone 8의 음악+동영상 허브와 통합하는 방법

2014-06-18

적용 대상: Windows Phone 8 및 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

 

음악 + 동영상 허브는 Windows Phone 에서 진행되는 모든 음악, 동영상, 팟캐스트 활동의 중심점입니다. 음악+동영상 허브의 앱은 미디어 재생에 대한 일관된 최종 사용자 환경을 제공할 수 있도록 휴대폰에서 통합 음악 및 동영상 환경을 제공합니다. 음악+동영상 허브와 통합되는 앱의 예제는 음악 및 동영상 허브 샘플을 참조하세요.

음악+동영상 허브에서 앱으로 표시되려면 앱이 다음 조건을 충족해야 합니다.

  • 앱은 아래 나열된 인증 요구 사항을 충족해야 합니다.

  • 앱은 MediaHistoryMediaHistoryItem 클래스를 사용해야 합니다.

앱은 Windows Phone 개발자 센터 에서 앱 제출 및 인증 프로세스를 통과한 후 다음과 같이 됩니다.

  • 앱 제출 및 인증 프로세스에서는 MediaHistoryMediaHistoryItem API를 호출하는지 검색하고 이러한 API를 호출하는 데 필요한 보안 기능을 앱에 부여합니다.

  • 인증 프로세스에서는 앱에 대한 HubType도 설정합니다. 따라서 앱은 단말기에 설치된 후 음악+동영상 허브의 목록에 자동으로 나타납니다.

음악+동영상 허브에는 5개 페이지가 있습니다.

  • 컬렉션은 음악, 동영상, 팟캐스트 및 스토어 에 대한 시작 지점입니다. 페이지 아래쪽에 있는 재생 버튼은 전체 음악 컬렉션을 무작위 재생 모드로 재생합니다.

  • 기록에는 최근에 재생한 음악, 동영상, 재생 목록, 작곡가, 팟캐스트 및 타사 공급자의 콘텐츠가 포함되어 있습니다. 음악+동영상 허브 앱을 사용하여 미디어를 재생할 때 이 목록을 업데이트하세요.

  • 새로 만들기에는 휴대폰과 동기화되었거나 XBox Music 스토어에서 다운로드한 새 음악, 동영상 또는 팟캐스트의 업데이트된 목록이 포함되어 있습니다. 미디어가 장치에 추가되거나 사용자가 앱에서 "개체"를 만들 때(예: 음악 태그를 만들 경우) 이 목록을 업데이트하세요.

  • 에는 장치에 설치된 음악+동영상 허브 앱 목록이 포함되어 있습니다.

  • xbox에는 Xbox 컴패니언 및 Xbox Music 스토어의 링크가 들어 있습니다.

음악+동영상 허브 앱은 Windows Phone을 위한 앱 인증 요구 사항을 준수해야 음악+동영상 허브와 통합할 수 있습니다. 개발자 센터 제출 프로세스는 음악+동영상 허브 API의 사용을 감지하고, Windows Phone 앱 매니페스트를 통해 앱에 대한 액세스 권한을 부여합니다.

음악+동영상 허브에 표시되는 타일은 다음의 추가 도해 규칙을 준수해야 합니다.

  1. 각 타일의 앱 제목이나 로고를 포함해야 합니다.

  2. 지금 재생 타일은 358픽셀 x 358픽셀이어야 합니다. 파일 크기는 75KB 이하여야 합니다.

  3. 기타 타일 크기는 173픽셀 x 173픽셀이어야 합니다.

  4. MediaHistoryItem 클래스의 Title 속성은 방송국 이름이나 동영상 제목 같이 콘텐츠를 나타내는 텍스트로 설정되어야 합니다.

사용자가 혼동을 일으키지 않도록 허브 타일을 누를 때 앨범이 재생되는 경우를 제외하고는 허브 타일에 앨범 아트를 포함하면 안 됩니다. 앱에서 스트림을 재생하는 경우 허브 타일 그래픽에는 재생 중인 스트림에 대한 설명이 표시되어야 합니다. 이 요구 사항을 충족해야 인증되는 것은 아니지만 준수하는 것이 좋습니다.

앱이 개발자 센터 에서 앱 제출 및 인증 프로세스를 통과해야 음악+동영상 허브에 통합할 수 있으므로, 테스트하기 위한 과정을 진행해 볼 수 있습니다. Windows Phone 8의 앱 매니페스트 파일에서 HubType 값이 1로 설정되어 있는지 확인합니다. 다음 코드 예제에서는 HubType 값을 설정하는 방법을 보여 줍니다.

<App xmlns="" ProductID="{00000000-0000-0000-0000-000000000000}"
     Title="WindowsPhoneApplication" RuntimeType="Silverlight" 
     Version="1.0.0.0" Genre="NormalApp" Author="" Description="" 
     Publisher="" PublisherID="" HubType="1">

다음 코드 예제에서는 MediaHistoryMediaHistoryItem 클래스를 사용하여 기록 목록의 지금 재생 타일을 업데이트하는 방법을 보여 줍니다.

MediaHistoryItem mediaHistoryItem = new MediaHistoryItem();

//<hubTileImageStream> must be a valid ImageStream.
mediaHistoryItem.ImageStream = <hubTileImageStream>; 
mediaHistoryItem.Source = "";
mediaHistoryItem.Title = "NowPlaying";
mediaHistoryItem.PlayerContext.Add("keyString", "Song Name");
MediaHistory.Instance.NowPlaying = mediaHistoryItem;

다음 코드 예제에서는 MediaHistoryMediaHistoryItem 클래스를 사용하여 기록 목록의 지금 재생 타일 이외의 다른 타일을 업데이트하는 방법을 보여 줍니다.

MediaHistoryItem mediaHistoryItem = new MediaHistoryItem();

//<hubTileImageStream> must be a valid ImageStream.
mediaHistoryItem.ImageStream = <hubTileImageStream>; 
mediaHistoryItem.Source = "";
mediaHistoryItem.Title = "RecentPlay";
mediaHistoryItem.PlayerContext.Add("keyString", "Song Name");
MediaHistory.Instance.WriteRecentPlay(mediaHistoryItem);

다음 코드 예제에서는 MediaHistoryMediaHistoryItem 클래스를 사용하여 새로 만들기 목록을 업데이트하는 방법을 보여 줍니다.

MediaHistoryItem mediaHistoryItem = new MediaHistoryItem();

//<hubTileImageStream> must be a valid ImageStream.
mediaHistoryItem.ImageStream = <hubTileImageStream>; 
mediaHistoryItem.Source = "";
mediaHistoryItem.Title = "MediaHistoryNew";
mediaHistoryItem.PlayerContext.Add("keyString", "Song Name");
MediaHistory.Instance.WriteAcquiredItem(mediaHistoryItem);

다음 코드 예제에서는 앱이 기록 목록의 항목에서 실행되었는지 또는 새로 만들기 목록의 항목에서 실행되었는지 확인하는 방법을 보여 줍니다. 이 작업은 OnNavigatedTo(NavigationEventArgs) 이벤트 처리기에서 수행됩니다. NavigationContext의 정보는 항목과 연결된 미디어를 확인하는 데 사용됩니다. 이 예제에서 항목은 단말기의 미디어 라이브러리에 있는 노래입니다. 해당 곡은 페이지가 로드되면 PhoneApplicationPage에 대한 Loaded 이벤트 처리기에서 재생되기 시작합니다. 자세한 내용은 음악+동영상 허브 샘플을 참조하세요.

bool _historyItemLaunch = false;            // Indicates whether the app was launched from a MediaHistoryItem.
const String _playSongKey = "keyString";    // Key for MediaHistoryItem key-value pair.
Song _playingSong = null;                   // The song to play.

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    MediaLibrary library = new MediaLibrary();

    if (NavigationContext.QueryString.ContainsKey(_playSongKey))
    {
        // We were launched from a history item.
        // Change _playingSong even if something was already playing 
        // because the user directly chose a song history item.

        // Use the navigation context to find the song by name.
        String songToPlay = NavigationContext.QueryString[_playSongKey];

        foreach (Song song in library.Songs)
        {
            if (0 == String.Compare(songToPlay, song.Name))
            {
                _playingSong = song;
                break;
            }
        }

        // Set a flag to indicate that we were started from a 
        // history item and that we should immediately start 
        // playing the song after the UI has finished loading.
        _historyItemLaunch = true;
    }
}

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
    if (_historyItemLaunch)
    {
        // We were launched from a history item, start playing the song.
        if (_playingSong != null)
        {
            MediaPlayer.Play(_playingSong);
        }
    }
}

표시:
© 2014 Microsoft