3

MediaElent の曲を track1.mp3 から track2.mp3 に変更したいと考えています。コードは次のとおりです。

MyMediaElement.Stop();
Uri u = new Uri("track2.mp3", UriKind.Relative);
MyMediaElement.Source=u;
MyMediaElement.Play();

MediaElement はソースを変更しますが、開始されません。このコードの何が間違っている可能性がありますか?

4

4 に答える 4

2

私も同じ問題を抱えていました。XAML で自動再生とソースを設定することはできますが、コードでソースを変更すると、何もしなくなります。
コントロールの MediaOpened イベントをキャプチャしました。
問題は、ソースを変更した直後に Play() にヒットするため、現在の状態が閉じていることです。状態を変更するには、数クロック サイクルかかります。したがって、Play(); を配置すると、そのイベントハンドラー内で機能します。

于 2010-02-25T00:31:16.737 に答える
1

あなたは何も悪いことをしていないようです。ここに私が試すいくつかの診断があります:-

track2 を初期ファイルとして指定しても動作しますか?

MediaFailed イベントにアタッチすると、発生しますか?

TextBlock を CurrentState プロパティにバインドして、CurrentState がどのように変化したかを観察します。

于 2010-02-12T16:34:16.403 に答える
0

に設定AutoPlayしてからfalse、MediaOpened ハンドラーで実行しますPlay()。人々はここで解決策をほのめかしましたが、あまり正確ではありません。メディアが何らかの理由 (ファイルが見つからないなど) で開かない場合に備えて、MediaFailed イベントを処理することもできます。

于 2011-08-13T09:15:58.627 に答える