IOS MP3播放

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值