目标C:音频在模拟器上工作,但在设备中不工作

时间:2012-09-28 05:27:15

标签: objective-c ios core-audio avaudioplayer audio-recording

当我尝试在iPhone设备中构建它时,我的应用程序可能有一个原因,我听不到声音,我也无法使用设备的音量按钮..当我在模拟器中构建它时,它的工作原理完美..我尝试使用下面的代码,但它也没有工作..有人可以帮助我...谢谢..

 UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);


  NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"sounds" ofType:@"wav"];
AVAudioPlayer *soundPlay = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:soundPath] error:NULL];
soundPlay.volume = 1.0;
self->puzzSFX = soundPlay;
soundPlay.numberOfLoops = 0;
if ([soundPlay currentTime] != 0) [soundPlay setCurrentTime:0];
[soundPlay play];
soundPlay.delegate = self;

PS: 我试图通过耳机调节音量然后噗它会开始工作..

1 个答案:

答案 0 :(得分:0)

问题可能与从NSString路径到NSURL的转换有关,您需要检查特殊URL字符是否被转义(在模拟器中可能没有的字符,但只在设备上)。尝试这样做:

NSURL *fileURL = [NSURL URLWithString:[soundPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

然后使用此NSURL启动AVAudioPlayer。