2009-05-22 112 views
3

我希望能夠在iPhone OS應用程序中播放聲音剪輯。我已經看到NSSound以及AVFoundation作爲獲取iPhone OS設備上播放聲音剪輯的手段,但我仍然不清楚這個問題,並可以使用一些幫助。我不需要在實際的代碼中逐步說出來,但是如果有人可以給我一個關於我應該開始移動的大方向(即我應該關注哪些類)的提示,我會填寫在空白我自己。那麼,在iPhone應用程序中播放聲音剪輯的最簡單方法是什麼?在iPhone應用程序中播放聲音剪輯的最簡單方法是什麼?

回答

8

蘋果已經對這個問題的文章,請參閱:this link

AVAudioPlayer是發揮任何長度的聲音,最簡單的方法,循環與否,但它需要iPhone OS 2.2或更高版本。一個簡單的例子:

NSString *soundFilePath = 
       [[NSBundle mainBundle] pathForResource: @"sound" 
               ofType: @"wav"]; 

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath]; 

AVAudioPlayer *newPlayer = 
       [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL 
                 error: nil]; 
[fileURL release]; 

[newPlayer play]; 

[newPlayer release]; 

它會播放幾乎所有的文件格式(AIFF,WAV,MP3,AAC)請記住,你只能同時播放一個MP3/AAC文件。

+0

不確定iOS 2.2及以下版本,但使用AVAudioPlayer的許多實例一次播放多個mp3是完全可能的。 – Jonny 2011-05-07 16:17:27

6

這是我知道的最簡單的方法:

  1. 將您的聲音文件CAF(使用afconvert命令行工具),並添加到您的項目。

    咖啡館看臺上的Core Audio格式(我想...)

  2. 查找SoundEffect.h和.M在蘋果的示例代碼。我相信節拍器和BubbleLevel都有它。

  3. 複製到你的項目像下面
  4. 編寫代碼:

    SoundEffect *SimpleSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"soundfile" ofType:@"caf"]]; 
    [SimpleSound play]; 
    [SimpleSound release]; 
    

研究SoundEffect.m獲得的簡單的聲音處理的想法。

+0

剛剛實施這個,效果很好!只需要使用Audacity轉換wav - > wav即可轉換工作,沒有其他問題。 – JOM 2010-01-13 12:02:19

相關問題