4
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();
    }

なぜループしないのですか?

または、BGM をループさせる他の方法はありますか?

これは私が App.xaml に書いたもので、動作しますが、ループする方法がわかりません:

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

2 に答える 2

2

完全に答えられていないので -

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();
 }

ほら!あなたが管理できるすべてのニャンの良さがあります.

于 2011-10-06T15:50:42.773 に答える
0

メディア要素のプロパティを指定する方が良いと思います... Loop="true"

于 2011-05-24T05:23:37.060 に答える