MediaElent の曲を track1.mp3 から track2.mp3 に変更したいと考えています。コードは次のとおりです。
MyMediaElement.Stop();
Uri u = new Uri("track2.mp3", UriKind.Relative);
MyMediaElement.Source=u;
MyMediaElement.Play();
MediaElement はソースを変更しますが、開始されません。このコードの何が間違っている可能性がありますか?
MediaElent の曲を track1.mp3 から track2.mp3 に変更したいと考えています。コードは次のとおりです。
MyMediaElement.Stop();
Uri u = new Uri("track2.mp3", UriKind.Relative);
MyMediaElement.Source=u;
MyMediaElement.Play();
MediaElement はソースを変更しますが、開始されません。このコードの何が間違っている可能性がありますか?
私も同じ問題を抱えていました。XAML で自動再生とソースを設定することはできますが、コードでソースを変更すると、何もしなくなります。
コントロールの MediaOpened イベントをキャプチャしました。
問題は、ソースを変更した直後に Play() にヒットするため、現在の状態が閉じていることです。状態を変更するには、数クロック サイクルかかります。したがって、Play(); を配置すると、そのイベントハンドラー内で機能します。
あなたは何も悪いことをしていないようです。ここに私が試すいくつかの診断があります:-
track2 を初期ファイルとして指定しても動作しますか?
MediaFailed イベントにアタッチすると、発生しますか?
TextBlock を CurrentState プロパティにバインドして、CurrentState がどのように変化したかを観察します。
に設定AutoPlay
してからfalse
、MediaOpened ハンドラーで実行しますPlay()
。人々はここで解決策をほのめかしましたが、あまり正確ではありません。メディアが何らかの理由 (ファイルが見つからないなど) で開かない場合に備えて、MediaFailed イベントを処理することもできます。