- AVAudioPlayer
NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp3"];
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:path] error:nil];
_player.numberOfLoops = 0;
_player.volume = 1.0;
_player.delegate = self;
[ _player prepareToPlay];
[ _player play];
- AVPlayer
NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp3"];
AVPlayerItem *item = [[AVPlayerItem alloc] initWithURL:[NSURL fileURLWithPath:path]];
self.player = [[AVPlayer alloc] initWithPlayerItem:item];
_player.volume = 1.0;
[self.player play];
- MediaPlayer
self.moviePlayerVC = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
[self.navigationController presentViewController:_moviePlayerVC animated:YES completion:nil];
- AudioToolbox
可以播放时间长度30秒以内的声音文件。
SystemSoundID soundID;
NSString *path = [[NSBundle mainBundle]pathForResource:@"beep" ofType:@"wav"];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path], &soundID);
AudioServicesPlaySystemSound(soundID);
// 释放
AudioServicesDisposeSystemSoundID(soundID);
// 播放系统声音:
当参数为 1000-2000 之间数字时就是播放系统声音。1108为拍照声。
AudioServicesPlaySystemSound(1108);
//AudioServicesRemoveSystemSoundCompletion(1108);
// 提醒音和震动, 如果手机处于静音状态,则提醒音将自动触发震动
SystemSoundID sid;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &sid);
AudioServicesPlayAlertSound(sid);
// 仅震动
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
- AudioUnit
AVAudioSession
Category
AvAudioSessionCategoryAmbient
应用会随着静音键和屏幕锁屏而停止播放音乐,但不会中止其他应用的声音。可以和其他应用同时播放声音。
AVAudioSessionCategorySoloAmbeient
类似于AVAudioSessionCategoryAmbient 但它会中止其他应用的声音。
AVAudioSessionCategoryPlayback
应用不会随着静音键和屏幕锁屏而停止播放。
AVAudioSessionCategoryRecord
用于录音。
AVAudioSessionCategoryPlayAndRecord
用于既需要播放声音又需要录音的应用,如语音聊天、视频通话应用。
AVAudioSessionCategoryAudioProcessing
当需要进行离线语音处理时使用。
设置 Category
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[audioSession setActive:YES error:nil];
网友评论