Воспроизведение мультимедийного файла из изолированного хранилища - PullRequest
0 голосов
/ 26 октября 2010

Я читаю wav-файл, сохраненный как поток байтов из веб-службы, и хочу воспроизвести его, когда отображается моя запись.Приложение Phone 7.

Мой подход состоял в том, чтобы сохранить поток байтов в файле wav в изолированном хранилище после перехода к записи и впоследствии установить источник моего медиаплеера (MediaElement1) на этот источник, когда кнопканажмите и воспроизведите его.

Ниже приведен мой текущий код в моем «PlayButton».(размер соответствует потоку байтов, но не содержит аудио результатов).Если я устанавливаю поток в файл WAV, сохраненный как ресурс, он работает, поэтому, возможно, мне просто нужно знать, как установить Uri в файл изолированного хранилища.

(например, работает следующий код)

Mediaelement1.Source = new Uri("SampleData\\MyMedia.wav",UriKind.Relative) Works
Mediaelement1.Position = new TimeSpan(0,0,0,0) ;
Mediaelement1.Play() ;

Вот мой пример кода ... есть идеи?

IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication() ;
IsolatedStorageFileStream str = new IsolatedStorageFileStream(
    "MyMedia.wav", FileMode.Open, isf) ;
long size = str.Length;
mediaelement mediaelement = new MediaElement() ;
mediaelement.SetSource(str) ;
mediaElement1.Source = mediaelement.Source ;
mediaElement1.Position = new TimeSpan(0, 0, 0, 0);
mediaElement1.Play();

Ответы [ 2 ]

2 голосов
/ 27 октября 2010

Вам не нужно создавать 2 медиаэлемента.Просто позвоните .SetSource на mediaElement1 напрямую.

У меня есть похожий код, который устанавливает источник MediaElement для фильма в изолированном хранилище и работает нормально:

using (var isf = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (var isfs = new IsolatedStorageFileStream("trailer.wmv", FileMode.Open, isf))
    {
        this.movie.SetSource(isfs);
    }
}

С учетом вышеизложенного, movie - это уже созданный мной MediaElementв XAML и установите для autoPlay значение true.

У меня действительно было несколько проблем с вышеизложенным при первом запуске.

Я предлагаю попробовать следующее, чтобы помочь отладке:

  1. Убедитесь, что файл был записан в изолированное хранилище правильно и полностью.

  2. Обработайте событие MediaFailed, чтобы выяснить, почему оно не работает.

0 голосов
/ 24 ноября 2010

Одна вещь, которую я заметил, это то, что, когда устройство привязано к компьютеру, аудио не работает ... Потратил пару часов на это, когда пытался слушать mp3-файлы.

...