MediaElement没有播放mp3

时间:2012-10-25 09:19:05

标签: wpf

我正在尝试使用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();

当我使用它时,它会播放3秒钟然后停止。

2 个答案:

答案 0 :(得分:1)

为了工作,MediaElement必须是逻辑树的一部分。

事实上,如果你将它添加到面板中,那么它会起作用

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

如果你把它放在Window

中就行了

但是,如果您只想播放mp3而不将其添加到逻辑树中,那么您可以使用naudio library来实现。

答案 1 :(得分:0)

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