MediaPlayer并不总是在UWP应用中播放音频

时间:2019-06-14 01:40:26

标签: c# uwp windows-10-iot-core

我正在使用UWP应用程序(在运行Windows 10 IoT的Raspberry Pi上运行),并且我需要每天特定时间播放声音。我通过调用以下方法来初始化MediaPlayer和StorageFile:

private async void prepPlayer() {
            file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///audio.mp3"));
            player = new MediaPlayer();

}

然后我想通过调用以下方法播放音频时调用它:

public async void playAudio(){
            player.SetFileSource(file);
            player.Play();    
}

我遇到的问题是,在多次调用playAudio之后,它会退出播放音频。我无法在调试器运行时重现此内容。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

尝试一下:
打开 Package.appxmanifest
点击功能标签。
勾选背景媒体播放
我的要求几乎是相同的。我的应用每天应在5次不同的时间播放不同的音频文件。到目前为止,我开发的所有软件都运行良好。

答案 1 :(得分:-2)

每次播放声音是否需要创建新的MediaPlayer?尝试仅创建一次MediaPlayer并保存其实例以备将来使用。您可以先检查是否未创建MediaPlayer。在这种情况下,只需重新创建即可。如果我没记错的话,MediaPlayers的实例可以同时使用(我也记错了)。

private MediaPlayer player;
private StorageFile file;

private async void prepPlayer() 
{
    if(file == null) file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///audio.mp3"));
    if(player == null) player = new MediaPlayer();

}