iOS 音頻文件播放

直接可以使用

------------------------------------ .h文件 ----------------------------------

import <Foundation/Foundation.h>

import <AVFoundation/AVFoundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface CEMAVAudioPlayer : NSObject
{
AVAudioSession* _audioSession;
}

//第一種
@property(strong,nonatomic) AVPlayer *player;

+(instancetype)sharedInstance;

-(void)play;

-(void)stop;

@end

NS_ASSUME_NONNULL_END

------------------------------------ .m文件 ----------------------------------

import "CEMAVAudioPlayer.h"

@implementation CEMAVAudioPlayer

-(instancetype)init{
if (self = [super init]) {
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

    NSURL* url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Findphone" ofType:@"mp3"]];
    
    /* 第一種
     if (_player == nil) {
     _player = [[AVPlayer alloc] init];
     _player.volume = 1.0; // 默認最大音量
     }
     // 創(chuàng)建要播放的資源
     AVPlayerItem *playerItem = [[AVPlayerItem alloc]initWithURL:url];
     // 播放當前資源
     [self.player replaceCurrentItemWithPlayerItem:playerItem];
     */
    
    //第二種
    _audioSession = [AVAudioSession sharedInstance];
    [_audioSession setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil];
    [_audioSession setActive:YES error:nil];
    
    if(!staticAudioPlayer){
        staticAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
        [staticAudioPlayer prepareToPlay];
    }
}
return self;

}

static AVAudioPlayer* staticAudioPlayer;
+(instancetype)sharedInstance{
static CEMAVAudioPlayer *instance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[self alloc] init];
});
return instance;
}

-(void)play{
staticAudioPlayer.volume = 10;
if (!staticAudioPlayer.isPlaying) {
[staticAudioPlayer play];
}

//第一種
//[self.player play];

}

-(void)stop{
staticAudioPlayer.currentTime = 0;
[staticAudioPlayer stop];

//第一種
//[self.player pause];

}

@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容