在iPhone上播放音频文件

时间:2009-08-30 07:33:04

标签: iphone objective-c iphone-sdk-3.0 core-audio

我制作了一个简单的应用,我有一个歌曲列表。用户点击列表条目,歌曲开始播放。

我从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方法,或者我只是遗漏了一些东西。

如何在播放之前停止播放音频?

2 个答案:

答案 0 :(得分:4)

为什么不简单地使用AVAudioPlayer

答案 1 :(得分:1)

SoundEffect类是基于C语言的System Sounds API的包装器(请参阅Bubble Level项目中的.m file),这是一个简单的“即发即忘”样式API。提供“停止”功能。 System Sounds Services Reference

中的更多信息

我也赞同(并投票赞成)zoul建议使用AVAudioPlayer。系统声音完全不适合长文件编码的音频文件,如MP3文件中的歌曲。