iOS 长短音频的播放

来源:互联网 发布:淘宝假冒商品重新开店 编辑:程序博客网 时间:2024/05/16 14:09
#import <Foundation/Foundation.h>#import <AVFoundation/AVFoundation.h>#import <AudioToolbox/AudioToolbox.h>@interface BaseAVAudioPlayer : NSObject<AVAudioPlayerDelegate>{    AVAudioPlayer *avAudioPlayer;   //播放器player}+ (BaseAVAudioPlayer *)sharedManager;/** *  系统 短音频播放  时间<30s * *  @param musicName 播放音频的名称 */- (void)avaudioPlayerWithName:(NSString *)musicName;/** *  系统 长音频播放 * *  @param musicName 播放音频的名称 */- (void)noavaudioPlayerWithName:(NSString *)musicName;@end

#import "BaseAVAudioPlayer.h"@implementation BaseAVAudioPlayer+ (BaseAVAudioPlayer *)sharedManager{    static BaseAVAudioPlayer *sharedAccountManagerInstance = nil;    static dispatch_once_t predicate;    dispatch_once(&predicate, ^{        sharedAccountManagerInstance = [[self alloc] init];    });    return sharedAccountManagerInstance;}/** *  系统 短声音播放  时间<30s * *  @param musicName 播放音频的名称 */- (void)avaudioPlayerWithName:(NSString *)musicName{    SystemSoundID soundID = 0;    NSString *path = [[NSBundle mainBundle] pathForResource:musicName ofType:@"wav"];    if (path) {        //注册声音到系统        AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path],&soundID);        AudioServicesPlaySystemSound(soundID);    }    AudioServicesPlaySystemSound(soundID);   //播放注册的声音,(此句代码,可以在本类中的任意位置调用,不限于本方法中)}/** *  系统 长音频播放 * *  @param musicName 播放音频的名称 */- (void)noavaudioPlayerWithName:(NSString *)musicName{    //从budle路径下读取音频文件  轻音乐 - 萨克斯回家 这个文件名是你的歌曲名字,mp3是你的音频格式    NSString *string = [[NSBundle mainBundle] pathForResource:musicName ofType:@"wav"];        //把音频文件转换成url格式    NSURL *url = [NSURL fileURLWithPath:string];        if (!url) return;//如果URL不存在,那么就直接返回        if (avAudioPlayer.play) {        [avAudioPlayer stop];        avAudioPlayer = nil;    }        //初始化音频类 并且添加播放文件    avAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];        //设置初始音量大小    avAudioPlayer.volume = 1;        //设置代理    avAudioPlayer.delegate = self;        //设置音乐播放次数  -1为一直循环    avAudioPlayer.numberOfLoops = 0;        //播放    [avAudioPlayer play];}- (void)dealloc{    avAudioPlayer = nil;}@end


0 0
原创粉丝点击