2016-12-30 59 views
1

我有一個18KHz左右音調的WAV文件。音頻是16位PCM單聲道。iOS Xode:AVAudioPlayer不能正確播放WAV文件

我使用下面的函數來播放該文件:

func playSound(name: String) { 
     let documents = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] 
     let path = documents.appending("/").appending(name) 

     let url = NSURL.fileURL(withPath: path) 

     do { 
      player = try AVAudioPlayer(contentsOf: url) 
      guard let player = player else { return } 

      player.prepareToPlay() 
      player.play() 
     } catch let error { 
      print(error.localizedDescription) 
     } 
    } 

當我發揮它在我的iOS設備10.2聽說了一系列之間1000Hz的音調10000Hz的。我已經通過捕捉來分析渲染音頻,並且頻率圖顯示18kHz處的原始內容在那裏,但在1000Hz到10000Hz之間也存在音調。當我使用VLC或任何其他桌面音頻播放器播放相同的WAV文件時,我聽不到這些音調(因爲它們位於18kHz左右),所以我聽不到這些音調。我懷疑上面的代碼沒有正確加載數據,或者播放器沒有正確初始化,所以我需要一位經驗豐富的iOS老手誰可以告訴我我做錯了什麼。

預先感謝您。

回答

0

這一個工作//

進口的UIKit 進口AVFoundation

類的ViewController:UIViewController的{

var audioPlayer = AVAudioPlayer() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("button-09", ofType: "wav")) 
    println(alertSound) 

    // Removed deprecated use of AVAudioSessionDelegate protocol 
    AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil) 
    AVAudioSession.sharedInstance().setActive(true, error: nil) 

    var error:NSError? 
    audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error) 
    audioPlayer.prepareToPlay() 
    audioPlayer.play() 
} 

} 強大的文本

+0

謝謝你,但我希望的我可能會做錯的一個答案 – user1884325