0

我试图在通知到来时播放铃声以提醒用户。我想要实现的是铃声可以由用户播放,而不是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();
4

1 回答 1

1

对于标准操作系统通知,您仅限于系统声音 - 您无法更改它,也无法禁用它。但是,如果警报在内部使用,您可能需要查看Coding4Fun Toolkit中的ToastPrompt控件- 一旦显示,播放声音。

此外,您的播放代码应如下所示:

SoundEffectInstance currentSI;
using (var stream = TitleContainer.OpenStream("PATH"))
{
    var effect = SoundEffect.FromStream(stream);
    currentSI = effect.CreateInstance();
    FrameworkDispatcher.Update();
    currentSI.Play();
}
于 2013-05-10T01:17:16.070 回答