接上文,稍微底層一點的函數,我們對此進行簡單的封裝,以至於可以更加方便的使用。 代碼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/