[iphone-cocos2d]分享一段Objective-C可调用的游戏中播放音乐(2)

 
接上文,稍微底层一点的函数,我们对此进行简单的封装,以至于可以更加方便的使用。
 
代码
static GBMusicTrack *track;
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;
}
//
//对上文提及的方法进行封装,参数是播放的名字,和是否重复播放
//
+ (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 play];
#endif
}

 

防盗加个链接:

   作者:Alexliu(alex dotNet Learning)
   出处:http://alexliu.cnblogs.com/

 

posted @ 2010-02-23 16:35  AlexLiu  阅读(901)  评论(1编辑  收藏  举报