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正则表达式的简单使用
- ››iPhone开发Unresolved Symbols CAKeyframeAnimati...
- ››IPhone开发-“此证书是由未知颁发机构签名”解决方...
- ››IPhone开发-整合私钥和证书,生成.p12文件
- ››iPhone应用开发-UIPickerView选取器详解
- ››iphone 获取屏幕的宽度和高度
- ››iPhone读取工程包中的二进制文件
- ››iPhone新手机 不挂YouTube APP
- ››iPhone 获取指定格式的时间和日期
- ››iPhone版PPS走进生活 观赏体验媲美PC版
- ››iPhone两种不同的应用程序:两种方法的哲学思想
更多精彩
赞助商链接