AVFoundation - iOS 听不到声音
Posted
技术标签:
【中文标题】AVFoundation - iOS 听不到声音【英文标题】:AVFoundation - iOS can't hear sound 【发布时间】:2012-09-19 15:49:24 【问题描述】:我正在尝试使用 AVFoundation 框架播放 mp3 文件。它无法检测到文件并出现以下错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'
实现的代码:
NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"];
NSLog(@"directory %@",path);
AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate = self;
[theAudio play];
当我将 pathForResource:@"sound" 更改为 pathForResource:@"sound" (空格)时,它可以检测到文件但听不到声音。我也在 .h 文件中声明了 AVdelegate。有谁知道是什么问题?
【问题讨论】:
您的设备静音了吗?这比你想象的要多。 ***.com/questions/4640880/… ***.com/questions/8016765/… 这两个链接解决了这个问题。还是很感激 【参考方案1】:您需要先准备好准备播放音频才能播放..检查此代码 sn-p.. 它适用于我。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.mp3", fileName]];
NSError *err;
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath])
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:
[NSURL fileURLWithPath:filePath] error:&err];
player.delegate = self;
[player prepareToPlay];
[player setNumberOfLoops:0];
[player setVolume:0.5];
[player play];
【讨论】:
prepareToPlay
有助于减少声音开始播放所需的时间,但实际上并不是必需的。此外,OP 无法从应用程序包中播放声音,而不是 NSDocumentDirectory
。也许你可以编辑这个来帮助 OP :)
你好 NSPostWhenldle 你说的 OP 是什么意思?以上是关于AVFoundation - iOS 听不到声音的主要内容,如果未能解决你的问题,请参考以下文章
iOS OC环信实时语音切换听筒免提听不到声音报错:AVAudioSessionErrorCodeBadParam
iOS - 使用 AVFoundation 录制声音后 iPhone 声音级别低
Objective C - IOS - Xcode 4.6.2 - 听不到 mp3 文件的声音