IOS开发 音频播放

音频播放

-) 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];

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值