0

MediaElement コントロールを使用して mp3 ファイルを再生しようとしています。

このコントロールをメインの wpf ウィンドウに直接配置すると、機能します。

しかし今、クラスを作成してmp3を再生したいと思っています。だから私はクラスを持っています:

 class Player
    {
        private MediaElement media;
        public MediaElement MyMedia
        {
            get { return media; }
            set { media = value; }
        }


        public Player()
        {
            media = new MediaElement();
            media.LoadedBehavior = MediaState.Manual;
            media.Source = new Uri(@"C:\Users\DELL\Downloads\Music\yumeji.mp3",UriKind.RelativeOrAbsolute);
            media.Play();
        }


    }

しかし、それは機能していません。

編集:

私はこのコードを使用し、

  MediaPlayer m = new MediaPlayer();
  m.Open(new Uri(@"C:\Users\DELL\Downloads\Music\yumeji.mp3"));
  m.Play();

これを使用すると、 mysound が 3 秒間再生されてから停止します。

4

2 に答える 2

1

MediaElement が機能するには、論理ツリーの一部である必要があります。

実際、それをパネルに追加すると、次のようになります

Player p = new Player();
myGrid.Children.Add(p.MyMedia);

これが、Window

ただし、論理ツリーに追加せずに単に mp3 を再生したい場合は、naudio ライブラリを使用してそれを実現できます。

于 2012-10-25T09:31:35.763 に答える
0

あなたの問題は、MediaPlayer への参照を保持する必要があることでした。ガベージコレクションでした。

于 2013-04-15T12:12:24.283 に答える