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 library来实现。

于 2012-10-25T09:31:35.763 回答
0

您的问题是您需要保留对 MediaPlayer 的引用。这是垃圾收集。

于 2013-04-15T12:12:24.283 回答