我无法使用资产在wpf应用中播放声音

8ehkhllq  于 2023-06-07  发布在  其他
关注(0)|答案(1)|浏览(136)

我对编程相当陌生,似乎无法克服一个问题。基本上,我正在用wpf制作一个游戏,并希望添加音效。不幸的是我不知道怎么做。我设法使声音播放从文件从我的电脑,但因为我想分享它以后,我必须作出资产的声音。当我使用.MediaFailed时,我经常收到错误,通常是一个错误,说找不到资产,但当MediaPlayer的Uri是

@"pack://application:,,,/Sounds/one_beep.mp3"

它给出System.NotSupportedException。
不管怎样,我的问题是:
1.如何在wpf中使用资产播放音频?(回答)
1.为什么我运行的问题会发生?
现在这东西起作用了,我想知道它为什么起作用,而不是更早。这里有一个关于如何进行复制的教程:
1.在VisualStudio中创建WPF应用程序
1.在主窗口中创建一个按钮.xaml并将click分配给一个函数
1.插入一个mp3文件到工程中
1.在.xaml.cs中创建一个MediaPlayer对象,并在click函数中播放mp3
如果你这样做,你不应该听到声音。下面是我的代码(我可以确认它运行):

MediaPlayer player = new();

    private void Button_Sound(object sender, RoutedEventArgs args)
    {
        player.Open(new Uri("Assets/one_beep.mp3", UriKind.Relative));
        player.Play();
        player.MediaFailed += (o, args) =>
        {
            Debug.WriteLine(args.ErrorException);
        };
    }
42fyovps

42fyovps1#

媒体播放器非常简单。
1.使用运算符new创建它
1.为MediaFailed事件挂接一个事件处理程序(可选,但这是诊断问题的好方法)
1.围绕媒体文件构造URI
1.使用URI调用player.Open()。
1.播放声音
下面是一个使用相对URI的示例

var player = new MediaPlayer();
player.MediaFailed += OnMediaFailed;
var uri = new  Uri("Resources/PM_TS_Camera_Film_35mm_SLR_CANON_A1_MKH8040_52_Shutter_Release_1_60th_51.mp3", UriKind.Relative);
player.Open(uri);
player.Position = TimeSpan.Zero;
player.Play();

相关问题