Как зациклить музыку в WP7 BGM? - PullRequest
4 голосов
/ 24 мая 2011
private void button1_Click(object sender, RoutedEventArgs e)
{
    MediaElement Lala = 
        ((MediaElement)App.Current.Resources["backgroundMusic"]).Stop();

    if (Lala == true)
    {
        ((MediaElement)App.Current.Resources["backgroundMusic"]).Play();
    }

Почему он не зацикливается?

Или есть какой-нибудь другой способ сделать мой цикл фоновой музыки?

Это то, что я написал в App.xaml, и он работает, но не уверен, как это сделать:

<Application.Resources>
    <MediaElement x:Name="backgroundMusic" Source="Nyan.mp3" AutoPlay="True" Volume="1" />
</Application.Resources>

Ответы [ 2 ]

2 голосов
/ 06 октября 2011

Поскольку он не был полностью дан ответ -

, вы ищете MediaElement для зацикливания себя, когда оно останавливает свой цикл.Ваш код этого не делает.Вместо этого ваш код: 1) Остановка музыки при нажатии кнопки.Следующая строка кода: if (Lala == true) - это bool для элемента мультимедиа.

Простой способ автоподстройки, даже если у вас есть код только в XAML, это вставить код MediaEnded="".При этом вы создаете обработчик событий, чтобы указать, что делать, когда закончился носитель.Итак, в вашем примере ваш XAML будет выглядеть так:

 <MediaElement x:Name="backgroundMusic" Source="Nyan.mp3" AutoPlay="True" Volume="1" MediaEnded="DoThisWhenMediaEnds" />

, а ваш c # будет выглядеть так:

 private void DoThisWhenMediaEnds(object sender, RoutedEventArgs e)
 {
    //what to do when the media has ended. In this case:
    backgroundMusic.Play();
 }

Вот, пожалуйста!У вас будет все добро Нян, с которым вы сможете справиться.

0 голосов
/ 24 мая 2011

Я думаю, что лучше было бы указать свойство медиа-элемента ... Loop = "true"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...