【问题标题】:iOS Xode : AVAudioPlayer is not playing WAV file correctlyiOS Xode:AVAudioPlayer 未正确播放 WAV 文件
【发布时间】:2018-07-25 18:20:52
【问题描述】:

我有一个音调在 18kHz 左右的 WAV 文件。音频为 16 位 PCM 单声道。

我正在使用以下函数来播放文件:

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 资深人士来告诉我我做错了什么。

提前谢谢你。

【问题讨论】:

    标签: ios audio avaudioplayer


    【解决方案1】:

    检查下面的代码可能对你有用

    import UIKit
    import AVFoundation
    
    class 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()
        }
    
    }
    

    【讨论】:

    • 谢谢你,但我希望能回答我可能做错了什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    相关资源
    最近更新 更多