2010-09-14 100 views
0

我已經設置了我的應用程序的一部分來播放聲音。簡單 - 但只能在模擬器中工作。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"); 
} 

在模擬器,找到該文件,播放聲音和完成發生。在設備中,文件被找到,聲音不播放,並且永遠不會調用完成。

任何想法?非常感謝你,我的額頭和桌面都很欣賞任何回覆...... :)

回答

0

好的, 所以有一些事情我改變了,讓這個工作。在我面前沒有代碼,稍後會嘗試添加。

  1. 我停止使用系統聲音並開始使用AVAudioPlayer代替。
  2. 我沒有將我的UIView設置爲音頻代理
  3. 未開始音頻會話。現在我正在啓動initNib函數中的音頻會話(我看到說使用awakeFromNib的tutrorials,但awakeFromNib永遠不會被觸發...)
相關問題