iPhone 应用开发:音频播放
2010-08-29 01:51:00 来源:WEB开发网02 2. NSString *soundFilePath =
03 3. [[NSBundle mainBundle] pathForResource: @"background"
04 4. ofType: @"wav"];
05 5. NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];
06 6. AVAudioPlayer *newPlayer =
07 7. [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL
08 8. error: nil];
09 9. [fileURL release];
1010. self.player = newPlayer;
1111. [newPlayer release];
1212. [self.player prepareToPlay];
1313. [self.player setDelegate: self];
1414. self.player.numberOfLoops = -1; // 循环播放音频,直到调用Stop方法
1515. [self.player play];
1616. }
可 以看到,只要将 AVAudioPlayer 的 numberOfLoops 属性设为负数,音频文件就会一直循环播放直到调用 stop 方法。AVAudioPlayer 同样支持 Callback,这是 AVAudioPlayerDelegate 的一个可选 delegate 方法:
view sourceprint? 11. - (void) audioPlayerDidFinishPlaying: (AVAudioPlayer *) player successfully: (BOOL) flag {
22. if (player == self.player && flag == YES) {
33. NSLog(@"Playback finish.");
44. }
55. }
另外,你可以随时控制 AVAudioPlayer 对象的播放、暂停以及停止,通过判断对象的状态,分别调用 play、pause 和 stop 方法即可:
view sourceprint? 1-(IBAction) playOrPause: (id) sender {
2 // 音频控制逻辑
3 if (self.player.playing) {
4 [self.player pause];
5 } else {
6 [self.player play];
7 }
虽 然 AVAudioPlayer 可以播放很多格式,但是我们在实际开发过程中还是最好使用一些没有压缩的格式,比如 WAVE 文件,这样可以减少系统处理单元的资源占用,以便更好的完成程序的其他功能。另外,在使用 AVAudioPlayer 连续播放 mp3 这类经过压缩的音频文件时,在连接处可能出现一定的间隔时间。
3. Audio Queue Services
如果以上两种音频播放的解决方案都无法满足你的需求,那么我想你肯定需要使用 Audio Queue Services。使用 Audio Queue
- ››iPhone应用帮助残障儿童看图说话
- ››iPhone实用工具AppBox Pro使用教程大揭秘
- ››iphone4省电方法
- ››iphone 获取地址的详细信息
- ››iPhone 库的基本内存管理策略
- ››iPhone加密文字亲手做 私密信息有保障
- ››iphone 根据经纬度坐标取详细地址(包括国,省,市...
- ››iphone/ipad ios cocoa object-c 近期苹果UI部分小...
- ››iphone中如何进行多线程编程
- ››iPhone OS SDK的这些事[安装、下载、版本、实例、...
- ››iPhone ObjectC的NSAutoreleasePool
- ››iPhone 判断设备是在Portrait(纵向)还是(Landscap...
更多精彩
赞助商链接