2017-05-05 16 views
1

Windows 10 UWP MediaPlayer를 사용하여 오디오 스트리밍 앱을 제작하고 있습니다. 대부분의 스트림은 스트림 자체에 포함 된 프로그램에 대한 메타 데이터가 포함 된 shoutcast/icecast mp3-stream 유형입니다.UWP MediaPlayer에서 스트림 메타 데이터를 가져 오는 방법은 무엇입니까?

오디오 스트림 재생을위한 내 코드는 다음과 본질적 :

mediaPlayer.Source = MediaSource.CreateFromUri(channelUri); 
mediaPlayer.Play(); 

내가하는 HttpClient를 가진 동일한 스트림 URL을 열어 메타 데이터를 분석하고 정보를 읽고 완벽하게 할 생각하지만,이없는 것입니다 내가 원하는. 나는 매 10 초마다 메타 데이터를 얻고 두 개의 동시 세션을 갖고 싶지 않습니다.

  1. 메타 데이터를 읽는 UWP MediaPlayer를 구성 할 수 있고, 그렇다면, 방법 :

    그래서 나는이 개 질문이?

  2. 그렇지 않다면 httpclient (또는 다른 것)를 통해 스트림을 열고 메타 데이터를 읽은 다음 MediaPlayer로 동일한 스트림을 보낼 수 있습니까?

예 스트림 : http://sverigesradio.se/topsy/direkt/164-hi-mp3

답변

1

나는 UWP를 사용한 적이 있지만, 난 당신이 웹 개발의 관점에서 오는위한 솔루션을 가지고 있고, UWP은 매우 유사한 API를 사용하는 것 같습니다.

UWP MediaPlayer 구성 요소는 메타 데이터를 읽을 수 있습니까? 그렇다면 어떻게해야합니까?

아마도 그렇지 않습니다. 내가 본 적이있는 Microsoft 코드는 없습니다. 웹 브라우저의 미디어 플레이어 중 어느 것도 네이티브 방식으로 이것을 처리하지 못합니다. 그렇지 않은 경우 나, HttpClient를 (또는 뭔가 다른)를 통해 스트림을 열고 읽을 메타 데이터를 다음 MediaPlayer를 동일한 스트림을 전송하는

, 그것은 가능하다?

예, 정확하게 수행해야합니다.

MediaSource 확장 기능을 사용하십시오. MSE는 적어도 웹 브라우저 컨텍스트에서 원하는 모든 수단을 사용하여 미디어 데이터를 가져온 다음 미디어 플레이어로 전달하여 코덱 및 재생을 통해 미디어 데이터를 실행하게합니다.

브라우저에서 Fetch API를 사용하여 HTTP 요청을 Icy-MetaData: 1 헤더로 사용하여 서버에서 메타 데이터를 요청하고 Icy-MetaInt 응답 헤더를 읽고 메타 데이터 청크에 대한 바이트 오프셋을 확인한 다음 메타 데이터를 demux합니다 오디오 데이터를 미디어 플레이어로 전송할 버퍼에 떨어 뜨리기 전에 오디오 데이터로부터 제거합니다.

일부 리소스를 UWP 위해 시작하려면 :

미안 UWP에 대한 더 많은 특정 코드를 줄 수 없다!