IOS MP3播放

来源:互联网 发布:松智洋 知乎 编辑:程序博客网 时间:2024/05/10 20:27

1.初始化语音模块

    if (!_voiceManager)    {        self.voiceManager = [[LJVoiceManager alloc]init];        [self.voiceManager initLJVoiceManager];    }

2. 播放

[self.voiceManager playAudio];


3. 以下是我封装的一个语音播放的类

#import "LJVoiceManager.h"@interface LJVoiceManager ()<AVAudioPlayerDelegate>@property (nonatomic, strong)AVAudioPlayer *avAudioPlayer;@end@implementation LJVoiceManager#pragma mark -- dealloc- (void)dealloc{    }#pragma mark -- 初始化- (void)initLJVoiceManager{    //从budle路径下读取音频文件     NSString *voicePathString = [[NSBundle mainBundle] pathForResource:@"Music" ofType:@"mp3"];        if (voicePathString.length > 0)    {        //把音频文件转换成url格式        NSURL *voiceUrl = [NSURL fileURLWithPath:voicePathString];        //初始化音频类 并且添加播放文件        self.avAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:voiceUrl error:nil];        //设置代理        self.avAudioPlayer.delegate = self;                //设置初始音量大小        self.avAudioPlayer.volume = 0.3;//1:声音最大                //设置音乐播放次数  -1为一直循环        //self.avAudioPlayer.numberOfLoops = -1;                //预播放        [self.avAudioPlayer prepareToPlay];    }}#pragma mark -- 播放设置//播放- (void)playAudio{    //如果在播放,先停止,再播放    if ([self.avAudioPlayer isPlaying])    {        [self.avAudioPlayer stop];    }    [self.avAudioPlayer play];}//暂停- (void)pauseAudio{    [self.avAudioPlayer pause];}//停止- (void)stopAudio{    self.avAudioPlayer.currentTime = 0;  //当前播放时间设置为0    [self.avAudioPlayer stop];}#pragma mark -- AVAudioPlayerDelegate//播放完成时调用的方法- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{    CHDebugLog(@"audioPlayerDidFinishPlaying---%hhd",flag);        //如果播放完毕,则停止播放器    if (flag)    {        if ([self.avAudioPlayer isPlaying])        {            [self.avAudioPlayer stop];        }    }}- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError * __nullable)error{    CHDebugLog(@"audioPlayerDidFinishPlaying---%@",error);        if ([self.avAudioPlayer isPlaying])    {   //如果发生错误,也停止播放        [self.avAudioPlayer stop];    }}//当程序被应用外部打断之后,重新回到应用程序的时候触发。在这里当回到此应用程序的时候,继续播放音乐。- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player{    [self.avAudioPlayer play];}@end


0 0
原创粉丝点击