2
private void Image_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    snare.Play();

}

private void tom3Img_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    tom3.Play();
}

private void tom2Img_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    tom2.Play();
}

private void tom1Img_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    tom1.Play();
}

private void kik_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    kick.Play();
}

private void lCrash_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    crashl.Play();
}

private void RCrash_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    crashr.Play();
}

xmlでは、サウンドごとに個別の要素があります

<MediaElement Name="snare" HorizontalAlignment="Left" Height="19" 
 Margin="385,566,0,0" VerticalAlignment="Top" Width="42" 
 Visibility="Collapsed" AutoPlay="False" Volume="150" Source="/Music/snare.wav"/>

これらは、Windowsストアアプリで行ったのと同じ方法でドラムキットを作成しようとしている私のxmlおよびcsコードです。問題 あるイベントが機能する時間が理解できず、他のイベントに変更を加えると停止します。

フォルダー内のすべてのサウンド ファイルは Music を呼び出します。cs でメディア要素を作成し、cs コードを使用してソースを設定しようとしましたが、snare.Source = new Uri("/Music/snare", UriKind.Relative); いずれも機能しません。誰かがこの問題を解決するのを手伝ってくれるなら。オーディオファイルは本当に短いです

4

2 に答える 2

2

私があなたの必要性を適切に理解していれば、あなたの問題は、Windows Phone で一度に再生できるトラック/ファイルは 1 つだけですMediaElement(source msdn ):

MediaElement コントロールがオーディオまたはビデオ コンテンツを再生するとき、既に再生中のバックグラウンド サウンドまたはメディアは停止します。ユーザーがコントロールをタップすると、アプリは再生エクスペリエンスを起動します。一度に操作できる MediaElement コントロールは 1 つだけです。

そのようなことを行うには、おそらくXNAを使用する必要があります。ここにあなたを助けるかもしれない興味深いリンクといくつかの選択された引用があります:

Windows ストア アプリ/WP8 での作成者の経験は、あなたのものと非常に近いようです。

まず、私は Windows 8 の「Metro」スタイルのアプリを作成しましたが、これはうまくサウンドを再生できます。そのため、Win8 アプリを WP8 に移植し始めたときに、WP8 が Win8 と同じカーネルを使用することになっていることを理解して、サウンドを移植することを考えました。簡単です。2 つのプラットフォームには微妙な (そしてそれほど微妙ではない) 違いがあることがわかりました。

だから彼も同じ問題を抱えていた:

もう 1 つの「落とし穴」 ここまでは、サウンドの再生に使用される MediaElements だけを見てきました。ただし、WP8 では、一度に再生できるメディア要素は 1 つだけです。SO – ゲームのように、複数の効果音を同時に再生する必要がある場合はどうすればよいですか? ここで XNA ライブラリを利用できます。それが SoundEffect です。

そして最後に、彼は次の結論に達します。

結論 最終的には、アプリでバックグラウンド ミュージックを再生するためにメディア要素を使用して、再生時間の長いサウンド ファイルを自由に開始/停止できるようにし、XNA の SoundEffect を使用してサウンド エフェクトを再生することにしました。 、複数のサウンドが同時に再生されます。私にはうまくいくようです、頑張ってください!

于 2013-10-25T22:15:38.500 に答える
0

画像の MouseLeftButtonDown イベントで mediaElement のソースを変更する必要があるだけかもしれません。サウンドごとに別々の mediaElements を使用することは避けてください。xaml で単一の MediaElement を定義し、すべての画像イベントに応じてソースを変更するだけです。

このようなもの:

private void Image_MouseLeftButtonDown(object sender,     System.Windows.Input.MouseButtonEventArgs e)
{
  snare.Source= new Uri("snare.mp3, UriKind.Relative");
  snare.Play();

}
于 2014-05-13T08:04:19.133 に答える