Iphone音频只在模拟器中工作不在设备

问题描述:

我已经设置了我的应用程序的一部分来播放声音。简单 - 但只能在模拟器中工作。Iphone音频只在模拟器中工作不在设备

INITING音频对话是这样的:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 
     // Custom initialization 
    } 

AudioSessionInitialize(NULL,NULL,NULL,NULL); 
AudioSessionSetActive(YES); 
return self; 
} 

播放声音,设置完成calback,并检查文件是这样的:

NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"mp3"]; 

AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID); 
AudioServicesAddSystemSoundCompletion (soundID,NULL,NULL, 
      completionCallback, 
      (void*) self); 


if([[NSFileManager defaultManager] fileExistsAtPath:path]) 
{ 
    NSLog(@"Playing Sound"); 
    AudioServicesPlaySystemSound(soundID); 
} 
else { 
    NSLog(@"NO SOUND"); 
} 

在模拟器,找到该文件,播放声音和完成发生。在设备中,文件被找到,声音不播放,并且永远不会调用完成。

任何想法?非常感谢你,我的额头和桌面都很欣赏任何回复...... :)

好的, 所以有一些事情我改变了,让这个工作。在我面前没有代码,稍后会尝试添加。

  1. 我停止使用系统声音并开始使用AVAudioPlayer代替。
  2. 我没有将我的UIView设置为音频代理
  3. 未开始音频会话。现在我正在启动initNib函数中的音频会话(我看到说使用awakeFromNib的tutrorials,但awakeFromNib永远不会被触发...)