我正在尝试使用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秒钟然后停止。
答案 0 :(得分:1)
为了工作,MediaElement必须是逻辑树的一部分。
事实上,如果你将它添加到面板中,那么它会起作用
Player p = new Player();
myGrid.Children.Add(p.MyMedia);
如果你把它放在Window
但是,如果您只想播放mp3而不将其添加到逻辑树中,那么您可以使用naudio library来实现。
答案 1 :(得分:0)
您的问题是您需要持有对MediaPlayer的引用。这是垃圾收集。