我制作了一个简单的应用,我有一个歌曲列表。用户点击列表条目,歌曲开始播放。
我从Apple的示例项目(例如Metronome,BubbleLevel)中解除了SoundEffect类。它似乎可以正常使用以下代码:
// declare in the .h file
SoundEffect *audio;
// setup - when controller loads
audio = [SoundEffect alloc];
// play when user taps entry
NSBundle *mainBundle = [NSBundle mainBundle];
[audio initWithContentsOfFile:[mainBundle pathForResource:@"entry1" ofType:@"mp3"]];
[audio play];
但是,如果“音频”对象已经播放,我想在它再次开始播放声音之前停止播放。 SoundEffect类没有stop方法,或者我只是遗漏了一些东西。
如何在播放之前停止播放音频?
答案 0 :(得分:4)
为什么不简单地使用AVAudioPlayer?
答案 1 :(得分:1)
SoundEffect
类是基于C语言的System Sounds API的包装器(请参阅Bubble Level项目中的.m file),这是一个简单的“即发即忘”样式API。提供“停止”功能。 System Sounds Services Reference。
我也赞同(并投票赞成)zoul建议使用AVAudioPlayer
。系统声音完全不适合长文件编码的音频文件,如MP3文件中的歌曲。