none
MediaElementで音だけを再生(映像なし)するのに非常に重い RRS feed

  • 質問

  • xaml側で

    <MediaElement Name="mediaElement1" Source="oto.mp3" LoadedBehavior="Manual" />

    と定義し

    cs側で
    private void button1_Click(object sender, RoutedEventArgs e)
    {
          mediaElement1.Play();
    }

    と定義し再生しようとするとしばらく音はしないで
    CPUが非常にがんばってしまい
    しばらくするとやっと音が流れるといった具合になります。

    これはどうにかならないのでしょうか?
    ご存知の方教えて頂ければ幸いです。
    2009年3月21日 17:15

回答

  • 自己解決報告です。
    どうやらPlay()のタイミングで初めて再生の準備みたいなものをして音をならしているようで
    これが2,3秒の音声ファイルでも、ものすごくCPUを消費するのです。
    2回目以降は準備済みなのでスムーズに音が流れました。
    ですので、鳴らす前に前もって
    Stop()をすると音の準備をしてくれます。やっぱり重いですが。
    というわけで、何だかうまくない方法なのですがこれで1回目でもスムーズに音が出るようになりました。
    2009年4月11日 3:57

すべての返信

  • 自己解決報告です。
    どうやらPlay()のタイミングで初めて再生の準備みたいなものをして音をならしているようで
    これが2,3秒の音声ファイルでも、ものすごくCPUを消費するのです。
    2回目以降は準備済みなのでスムーズに音が流れました。
    ですので、鳴らす前に前もって
    Stop()をすると音の準備をしてくれます。やっぱり重いですが。
    というわけで、何だかうまくない方法なのですがこれで1回目でもスムーズに音が出るようになりました。
    2009年4月11日 3:57
  • はじめまして!フォーラムオペレータの高橋春樹です。

    英語版のMSDNフォーラムを確認したところ
    同じような投稿がありました。

    Very long delay before MediaOpened event raised on MediaElement
    http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/8d168db2-5496-4f8f-ace5-abc6e5902d43/

    MediaElementはMediaPlayerコントロールを使用しており、
    初期実行時はどうしても重くなるのかもしれませんね。

    今回は無権極限さんが投稿して下さった情報を、
    皆様で共有するために、回答マークを付けさせて頂きました。

    今後ともMSDNフォーラムをよろしくお願いします。


    マイクロソフト株式会社 フォーラム オペレータ 高橋春樹
    2009年4月24日 6:05