我正在使用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之后,它会退出播放音频。我无法在调试器运行时重现此内容。有什么想法吗?
答案 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();
}