iOS简单的音效播放单例 (您可照搬代码)
2015-12-25 17:19
375 查看
.h
#import <Foundation/Foundation.h>@interface MusicPlayManager : NSObject
+ (BOOL)playMusic:(NSString *)filename;//播放音乐
+ (void)pauseMusic:(NSString *)filename;//暂停播放
+ (void)stopMusic:(NSString *)filename;//停止音乐
@end
.m
#import "MusicPlayManager.h"#import <AVFoundation/AVFoundation.h>
@interface MusicPlayManager()
@end
@implementation MusicPlayManager
/**
*存放所有的音乐播放器
*/
static NSMutableDictionary *_musicPlayers;
+ (NSMutableDictionary *)musicPlayers{
if (_musicPlayers==nil) {
_musicPlayers=[NSMutableDictionary dictionary];
}
return _musicPlayers;
}
+ (BOOL)playMusic:(NSString *)filename{
if (!filename) return NO;
AVAudioPlayer *player = [self musicPlayers][filename];
if (!player) {
NSURL *url=[[NSBundle mainBundle]URLForResource:filename withExtension:nil];
if (!url) return NO;
//创建播放器
player=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
//缓冲
if (![player prepareToPlay]) return NO;//如果缓冲失败,那么就直接返回
//存入字典
[self musicPlayers][filename]=player;
if ([filename isEqualToString:@"BGM.mp3"]) {
[player setNumberOfLoops:-1];//设置循环播放
}
// player.volume = 0.1;//声音大小
}
//播放
if (![player isPlaying]) {
return [player play];//如果当前没处于播放状态,那么就播放
}
return YES;//正在播放
}
+ (void)pauseMusic:(NSString *)filename{
if (!filename) return;
AVAudioPlayer *player=[self musicPlayers][filename];
[player pause];
}
+ (void)stopMusic:(NSString *)filename{
if (!filename) return;
AVAudioPlayer *player=[self musicPlayers][filename];
[player stop];
[[self musicPlayers] removeObjectForKey:filename];
}
@end
注意:使用此单例不可加全局断点。
相关文章推荐
- IOS开发——获取本地音频文件(属性/信息)
- IOS平台音频处理API介绍
- iOS 真机调试双击.cer证书
- iOS可变数组添加元素 以及可变数组操作
- iOS项目重构周记(一)
- iOS项目重构周记(二)
- iOS的三种多线程技术
- iOS开发笔记--连续跳转上层页面
- iOS从xib界面跳转到storyboard 中的界面和从storyboard中的界面跳转到另一个storyboard中的界面
- iOS--代码关联storyboard
- 处理动态类型的方法
- iOS 触摸事件五:手势处理器
- iOS学习之 plist文件的读写
- OC里面的集中数组遍历方法
- iOS开发-NSDate获取当前时区时间
- iOS中KVC和KVO有哪些用法?
- IOS 多媒体加载 加载音频 AVAudioPlayer
- iOS开发-调整文字之间间距
- iOS 去掉百度地图的 Logo(个人娱乐)
- 我的第一次份实习工作-iOS实习生-第三个月