音频播放
-) SYSTEM Sound Servies
底层音效的播放控制
框架 AutioToolBox
#import <AudioToolbox/AudioToolbox.h>
static void completionCallBack(SystemSoundID mySSID)
{
// 重复播放
AudioServicesPlaySystemSound(mySSID);
}
// 定义的视频文件
NSURL *url = [NSBundle mainBundle] pathForResource:<#(NSString *)#> ofType:<#(NSString *)#>];
//加载音效文件"" 文件名字
AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &"");
// 播放完成的函数 "" 文件名字
AudioServicesAddSystemSoundCompletion("", nil, nil, (void *)completionCallBack, nil);
// 控制震动 设备震动
AudioServicesPlayAlertSound(crash);
1.AVAudioPlayer 本地音乐 不支持流媒体
包:AVFoundation
#import <AVFoundation/AVFoundation.h>
@interface MainViewController ()<AVAudioPlayerDelegate>
// 播放音频
@property(nonatomic, strong) AVAudioPlayer *player;
// 播放进度
@property (nonatomic, strong) UIProgressView *progresssView;
// 支持音乐格式 MP3 AAC
// ■ AMR(AdaptiveMulti-Rate, aformatforspeech)
// ■ ALAC(AppleLossless)
// ■ iLBC(internetLowBitrateCodec, anotherformatforspeech)
// ■ IMA4(IMA/ADPCM)
// ■ linearPCM(uncompressed)
// ■ µ-lawanda-law
//play
UIButton *playButton = [UIButton buttonWithType:UIButtonTypeCustom];
playButton.frame = CGRectMake(50, 50, 100, 100);
playButton.backgroundColor = [UIColor cyanColor];
[playButton setTitle:@"play" forState:UIControlStateNormal];
[playButton addTarget:self action:@selector(play:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:playButton];
//pause
UIButton *pauseButton = [UIButton buttonWithType:UIButtonTypeCustom];
pauseButton.frame = CGRectMake(50, 150, 100, 100);
pauseButton.backgroundColor = [UIColor cyanColor];
[pauseButton setTitle:@"pause" forState:UIControlStateNormal];
[pauseButton addTarget:self action:@selector(pause:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:pauseButton];
// stop
UIButton *stopButton = [UIButton buttonWithType:UIButtonTypeCustom];
stopButton.frame = CGRectMake(50, 250, 100, 100);
stopButton.backgroundColor = [UIColor cyanColor];
[stopButton setTitle:@"stop" forState:UIControlStateNormal];
[stopButton addTarget:self action:@selector(stop:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:stopButton];
// 从bundle下面获取音乐 文件名字 格式
NSString *string = [[NSBundle mainBundle] pathForResource:@"d" ofType:@"mp3"];
NSURL *music = [[NSURL alloc] initFileURLWithPath:string];
_player = [[AVAudioPlayer alloc] initWithContentsOfURL:music error:nil];
CGFloat time = _player.duration;
// 文件循环播放
_player.numberOfLoops = -1;
// 代理
_player.delegate = self;
// 预播放
[_player prepareToPlay];
_progresssView = [[UIProgressView alloc] initWithFrame:CGRectMake(50, 360, 100, 20)];
[self.view addSubview:_progresssView];
}
// 播放完成
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
if (player == player && flag) {
NSLog(@"播放完成");
}
}
- (void)play:(UIButton *)button
{
[_player play];
}
- (void)pause:(UIButton *)button
{
[_player pause];
}
- (void)stop:(UIButton *)button
{
// 当前播放时间为0
_player.currentTime = 0;
[_player stop];
}