Я пытаюсь реализовать потоковую передачу Shoutcast на мой MediaElement через мой собственный класс MediaStreamSource.У меня есть цикл, в котором я загружаю данные с сервера Shoutcast, а затем задаю данные для класса MediaStreamSource - пока это работает не идеально, но я обнаружил еще одну более важную проблему.Я сделал тест.Я загрузил поток в файл mp3 (поток в mp3), затем поместил этот файл в свое приложение и установил его в MediaStreamSource.Вот код для этого:
private void Button_Click(object sender, RoutedEventArgs e)
{
var assembly = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
var res = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("Demo1.sample.mp3");
byte[] data = new byte[res.Length];
res.Read(data, 0, data.Length);
MemoryStream ms = new MemoryStream();
ms.Write(data, 0, data.Length);
ms.Position = 0;
ShoutcastMediaStreamSource ss = new ShoutcastMediaStreamSource(ms);
player.SetSource(ss);
}
мой ShoutcastMediaStreamSource, основанный на MenagedMediaHelpers.Поэтому, когда я помещаю этот поток в мой ShoutcastMediaStreamSource в debbuger, я вижу, что метод OpenMediaAsync () вызывается правильно, тогда GetSampleAsync () вызывается в цикле MediaElement, здесьтоже все хорошо, но при запуске этого приложения нет звука!Ни на эмуляторе, ни на устройстве, и ошибок нет.Я думаю, что метод GetSampleAsync () работает слишком быстро, потому что продолжительность файла (а также потока) составляет около 30 секунд, и это приложение завершается через ок.10 секНо, тем не менее, должен быть звук (царапина).
НО, что удивительно - это приложение работает в Silverlight как веб-страница! Музыка играет.Я в замешательстве.
Вот также приложение
http://timheuer.com/blog/archive/2010/08/16/download-and-store-media-for-playback-in-windows-phone-7-using-mediastreamsource.aspx
и есть комментарий:
Если Mp3MediaStreamSource установлен какисточник MediaElement, то MediaElement не воспроизводит этот файл и не показывает никаких ошибок в Windows Phone 7 SDK RTM версии.В предыдущей версии он работал, но не работает с финальным выпуском SDK для Windows Phone 7.