【发布时间】:2009-01-07 23:01:10
【问题描述】:
情况如下:
用户查找内容。
- 播放提示音,因为他查找的项目上有通知
- 用户关闭通知 - 应用程序继续检索信息
- 用户收到一个“叮”,告诉他们信息已完成检索
- 应用程序开始向 TextToSpeech 发送某些属性
- 应用程序遇到第二个通知,内部通知数据并发送另一个警报(文本语音暂停,然后在警报完成后恢复)
- 文本到语音已完成,播放另一个“叮”,让用户知道它已阅读所有内容
我们目前使用队列以有序的方式处理声音,以防止声音重叠。我们目前仅在调用 SoundAdded 事件时播放队列中的声音。这是我们在向队列中添加声音时触发的自定义事件。目前,每次调用事件只会播放一种声音。我们遇到了一个问题,在播放某些声音后,它们会“锁定”队列,阻止进一步的声音被处理。即使没有播放声音,我们也总是通过“解锁”队列来解决这个问题。然而,这仍然给我们留下了队列得到播放声音的问题。
我能想到的解决此问题的唯一方法是添加一个循环以在仍有声音等待播放时继续尝试播放声音。目前,主线程正在处理声音,我可能需要将声音处理移至单独的线程,但我不确定处理声音的最佳方法是什么。
所以...我的问题...是否有一个很好的声音库可供我们使用,其中包括声音结束的事件。或者......创造这样一个东西的最佳方法是什么?
【问题讨论】: