2009-02-19 48 views
2

我有一個短wav文件列表。其中兩個文件不能在模擬器或設備本身上播放。所有都是1秒長的wav文件。iPhone - 一些不播放的聲音文件

這是我發揮檔案

SystemSoundID soundID; 
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"wav"]; 

NSURL *fileUrl = [NSURL fileURLWithPath:filePath]; 
AudioServicesCreateSystemSoundID((CFURLRef)fileUrl, &soundID); 
AudioServicesPlaySystemSound(soundID); 

是否有人可以告訴我這個問題可能是什麼。謝謝。

P.S.當我在Finder中查看文件時,未播放的文件將默認播放器顯示爲QuickTime,而其他播放器將默認播放器顯示爲iTunes(如果以任何方式提供幫助)。

艾倫建議的解決方案是使用AIFF文件。要將wav轉換爲AIFF,請在iTunes中打開聲音文件。在iTunes中,選擇首選項 - >常規 - >導入設置 - >使用AIFF編碼器導入。選擇聲音文件,並在高級菜單選項中選擇選項「創建AIFF版本」

回答

1

看到這個問題 Trying to play sound through iPhone Simulator

我已經與.AIFF文件多了很多成功。

這將是很好的知道什麼確切 AudioServicesCreateSystemSoundID正在檢查文件傳遞給它時。

+0

謝謝。 AIF文件的工作。但我仍然不明白爲什麼一些wavs會工作,有些不會。 – lostInTransit 2009-02-19 18:09:40

5

iPhone目前只支持以下編解碼器:

  • AMR(自適應多速率,語音編解碼器)
  • 的iLBC(互聯網低比特率編解碼器,也是一個語音編解碼器)
  • IMA/ADPCM (也稱爲IMA-4)
  • 線性PCM
  • μLaw和ALAW

您的WAV文件可能包含不同格式的音頻,因此即使iPhone支持WAV文件,它也可能不支持您的特定WAV文件。

最好的選擇通常是使用命令行程序「afconvert」將所有內容轉換爲CAF文件(這是Apple的默認格式)。例如: -

afconvert sound1.wav sound1.caf 

全套轉換選項可以通過運行列出:

afconvert -h 

這種轉換將是大多數格式無損。 CAF文件格式通常是iPhone上使用的最快和最低開銷。