MediaElement Windows Phone 7 - PullRequest
       4

MediaElement Windows Phone 7

3 голосов
/ 06 марта 2011

Я создаю небольшое приложение, которое поможет мне лучше понять, как воспроизводить звуки на устройствах WP7, но у меня проблема с получением звука из устройства.

У меня есть следующий код:

<MediaElement x:Name="note1" Source="test.mp3" AutoPlay="False" />

private void btn1_Click(object sender, RoutedEventArgs e)
{
    note1.Source = new Uri("test.mp3", UriKind.Relative);
    note1.Play();
}

Где действие по созданию test.mp3 является ресурсом.

Я не понимаю, когда я добавляю точку останова к методу btn1_Click и останавливаюсь на note1.Play () он фактически воспроизводит test.mp3, но при отладке без точек останова и нажатии на кнопку ничего не слышно.

Есть ли способ исправить эту проблему?

Ответы [ 6 ]

3 голосов
/ 07 марта 2011

Пробовали ли вы играть с Build Action test.mp3, установленным в качестве содержимого.

Также вы закрывали программное обеспечение zune после того, как оно распознало телефон и завершило синхронизацию, и подключились с помощью инструмента wp7connect.для получения дополнительной информации о wp7connect, попробуйте здесь .zune блокирует все мультимедиа на устройстве wp7, и вы не можете воспроизводить любые мультимедиа, но состояние мультимедиа будет «окончено».попробуйте настроить следующие события носителя MediaFailed MediaOpened, MediaEnded, DownloadProgressChanged, CurrentStateChanged и BufferingProgressChanged

2 голосов
/ 27 марта 2011

Кроме того, убедитесь, что вы добавили возможность ID_CAP_MEDIALIB в свой манифест (WMAppManifest.xml), это, по-видимому, необходимо для MediaElement (в противном случае вы получите AG_E_NETWORK_ERROR в обработчике MediaFailed).

1 голос
/ 31 мая 2012

Я не рекомендую mediaElement для более чем одного аудиоэлемента .. у него странные эффекты ... используйте что-то вроде:

Stream stream = TitleContainer.OpenStream (@ "Audio / buzzer.wav");

        SoundEffect effect = SoundEffect.FromStream(stream);
        FrameworkDispatcher.Update();
        effect.Play();

используя xna Framework .... и убедитесь, что есть файлы WAV.

0 голосов
/ 16 ноября 2013

Это не может быть решено без Eventhandler. Делайте, как указано ниже.

 <MediaElement x:Name="note1" Source="test.mp3" AutoPlay="False" />

 private void btn1_Click(object sender, RoutedEventArgs e)
 {
   note1.Source = new Uri("test.mp3", UriKind.Relative);
   note1.MediaOpened += new RoutedEventHandler(note1_MediaOpened);
 }

  void note1_MediaOpened(object sender, RoutedEventArgs e)
    {
        note1.Play();
    }

это прекрасно работает. наслаждаться ...

0 голосов
/ 27 февраля 2012

Необходимо убедиться, что MediaElement был открыт, прежде чем вы сможете вызывать .Play () для него - вы можете сделать это, добавив получатель события в событие MediaOpened. Также было бы хорошо вызывать .Stop () в любое время до переназначения свойства Source - посмотрите этот поток для получения более подробной информации .

0 голосов
/ 16 октября 2011

Тип Uri должен быть RelativeOrAbsolute.

private void btn1_Click(object sender, RoutedEventArgs e)
{
    note1.Source = new Uri("test.mp3", UriKind.RelativeOrAbsolute);
    note1.Play();
}
...