首先需要引入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
}