分享一段Objective-C可调用的游戏中播放音乐

来源:互联网 发布:期货自动化交易软件 编辑:程序博客网 时间:2024/06/05 07:54

首先需要引入AudioTool 这个framework

稍微底层一点的函数,我们对此进行简单的封装,以至于可以更加方便的使用。

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
}


原创粉丝点击