【发布时间】:2013-01-07 17:39:46
【问题描述】:
我正在尝试使用音频工具箱播放 .wav 文件。到目前为止我有这个: 但是我的文件不会播放。 If 条件被正确触发,但它不播放。 如果文件不存在,它将打印错误消息。有什么线索吗?
-(void) playSound : (NSString *) fName : (NSString *) ext
{
SystemSoundID audioEffect;
NSString *path = [[NSBundle mainBundle] pathForResource : fName ofType :ext];
if ([[NSFileManager defaultManager] fileExistsAtPath : path])
{
NSURL *pathURL = [NSURL fileURLWithPath : path];
AudioServicesCreateSystemSoundID((__bridge CFURLRef) pathURL, &audioEffect);
AudioServicesPlaySystemSound(audioEffect);
}
else
{
NSLog(@"error, file not found: %@", path);
}
AudioServicesDisposeSystemSoundID(audioEffect);;
}
【问题讨论】:
-
AudioServicesCreateSystemSoundID返回的OSStatus的值是多少?您使用的 WAV 文件的出处是什么?你确定它包含 LPCM 或其他兼容格式的样本吗?如果在方法结束时不释放声音 ID 会怎样? -
@warrenm 我删除了那行,它起作用了,谢谢。但是ARC会自动处理内存吗?
标签: iphone objective-c ios audio audiotoolbox