我在通知发出时尝试为警告用户播放铃声。我想要实现的是铃声可以由用户播放而不是default ringtone
。
我成功创建了listbox
,listbox
内的铃声可以在前台播放。但是在后台运行时,default ringtone
将首先发出警报,用户的铃声播放将不会显示。这就是我遇到的问题。
发现异常:类型' System.IO.EndOfStreamException'发生在mscorlib.ni.dll中,并且未在托管/本地边界之前处理
如何停止 default ringtone
,以便我可以在后台播放用户选择的铃声?
任何帮助和建议将不胜感激。谢谢。
scheduleTaskAgent.cs
var stream = TitleContainer.OpenStream("Sound/" + Ringtone);
// I using isolatedstorage to store the ringtone name and shared to scheduleTaskAgent.cs
var effect = SoundEffect.FromStream(stream);
FrameworkDispatcher.Update();
effect.Play();
ToastHelper.ShowToast("Monitor:", "You have " + read2 + " Invoice!!", null);
testVibrateControl.Start(TimeSpan.FromSeconds(3));
testVibrateControl.Stop();
答案 0 :(得分:1)
对于标准操作系统通知,您仅限于系统声音 - 您无法更改它,也无法禁用它。但是,如果在内部使用警报,您可能需要查看ToastPrompt中的Coding4Fun Toolkit控件 - 一旦显示,就播放声音。
此外,您的播放代码应如下所示:
SoundEffectInstance currentSI;
using (var stream = TitleContainer.OpenStream("PATH"))
{
var effect = SoundEffect.FromStream(stream);
currentSI = effect.CreateInstance();
FrameworkDispatcher.Update();
currentSI.Play();
}