在我的应用程序中,我希望在“振铃和警报音量”级别上发出警报/通知。
换句话说,在音量级别上使用电话铃声或闹钟(首选项/声音/铃声和警报)。它与系统音量级别不同,后者随音量按钮而变化。
它的播放时间也应超过30秒。
我知道这是可能的,因为一些时钟应用程序可以做到这一点。
更新: 好的,我发现了一个不理想的解决方案。如果使用AudioServicesCreateSystemSoundID并加载我自己的声音文件(aif,wav等没有mp3或其他压缩音频)而不是它的工作原理。 唯一的问题是它必须是30秒或更短,但我可以把它切成30秒的片断然后一块一块地播放。
在静音开关上它不起作用对我来说是个问题。
代码:
SystemSoundID mySound;
AudioServicesCreateSystemSoundID(CFBundleCopyResourceURL(CFBundleGetMainBundle(), CFSTR("mySound"), CFSTR("aif"), NULL), &mySound);
AudioServicesPlaySystemSound(mySound);
我怀疑OpenAL应该这样做。有没有人有一个简单的例子,它加载aif / wav文件并在iPhone上播放。我发现了一些复杂的例子,但我只需要播放并停止声音(即使它正在泄漏,这很好)。
答案 0 :(得分:3)
我自己发现了。我必须使用AudioServicesCreateSystemSoundID并加载我自己的声音文件(aif,wav等没有mp3或其他压缩音频) 唯一的问题是它必须是30秒或更短,但我可以把它切成30秒的片断然后一块一块地播放。
在开启静音开关时不起作用
代码:
SystemSoundID mySound;
AudioServicesCreateSystemSoundID(CFBundleCopyResourceURL(CFBundleGetMainBundle(), CFSTR("mySound"), CFSTR("aif"), NULL), &mySound);
AudioServicesPlaySystemSound(mySound);
答案 1 :(得分:0)
你应该研究一下AVAudioPlayer类。它允许您播放任何持续时间的声音文件,您可以控制您希望播放的指定文件的音量输出。我不在我的Mac前面,否则我会提供代码。如果您需要进一步的指导,请告诉我。