[iphone-cocos2d]分享一段Objective-C可调用的游戏中播放音乐(2)
接上文,稍微底层一点的函数,我们对此进行简单的封装,以至于可以更加方便的使用。
代码
static GBMusicTrack *track;
static NSMutableDictionary *trackFiles;
static BOOL enabled_=TRUE;
static BOOL musicVolume_=1.0f;
static NSMutableDictionary *trackFiles;
static BOOL enabled_=TRUE;
static BOOL musicVolume_=1.0f;
//
//把音频文件按着名字添加到字典中
//
+(void) addMusicTrack:(NSString*)filename name:(NSString*)name {
if (trackFiles == nil) {
trackFiles = [[NSMutableDictionary alloc] init];
}
[trackFiles setObject:filename forKey:name];
}
//
//通过判断字典中是否为空,看有没有音频文件。
//
+ (BOOL)hasMusicTrack:(NSString*)name {
id obj = [trackFiles objectForKey:name];
if(obj==nil) return FALSE;
else
return TRUE;
}
//
+ (BOOL)hasMusicTrack:(NSString*)name {
id obj = [trackFiles objectForKey:name];
if(obj==nil) return FALSE;
else
return TRUE;
}
//
//对上文提及的方法进行封装,参数是播放的名字,和是否重复播放
//
+ (void)playMusicTrack:(NSString*)name withRepeat:(BOOL)b {
#ifndef DEBUG_NO_SOUND
if (!enabled_) return;
if (trackFiles == nil) return;
if(track!=nil) {
@try {
[self stopCurrentTrack];
}
@catch (NSException* ex) {
NSLog([ex description]);
}
}
//
+ (void)playMusicTrack:(NSString*)name withRepeat:(BOOL)b {
#ifndef DEBUG_NO_SOUND
if (!enabled_) return;
if (trackFiles == nil) return;
if(track!=nil) {
@try {
[self stopCurrentTrack];
}
@catch (NSException* ex) {
NSLog([ex description]);
}
}
//
// 这个函数initWithPath就是上文提及的,初始化方法。
//
track = [[GBMusicTrack alloc] initWithPath:[[NSBundle mainBundle]
pathForResource:[trackFiles objectForKey:name]
ofType:@"mp3"]];
[track setRepeat:b];
[track setVolume:musicVolume_];
track = [[GBMusicTrack alloc] initWithPath:[[NSBundle mainBundle]
pathForResource:[trackFiles objectForKey:name]
ofType:@"mp3"]];
[track setRepeat:b];
[track setVolume:musicVolume_];
// 音乐的播放
//
[track play];
#endif
}
[track play];
#endif
}
防盗加个链接:
作者:Alexliu(alex dotNet Learning)
出处:http://alexliu.cnblogs.com/
作者:Alexliu(alex dotNet Learning)
出处:http://alexliu.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,转载请注明。并且保留文章链接。否则保留追究法律责任的权利。