xcode – 使用Swift通过iPhone扬声器强制播放音频文件

xcode – 使用Swift通过iPhone扬声器强制播放音频文件,第1张

概述我有一个应用程序记录,然后播放音频文件.目前,通过耳机扬声器播放音频.有人能告诉我 Swift如何处理编码以强制音频输出扬声器吗? 下面是我用来播放音频文件的一个实例: @IBAction func playAudioVader(sender: UIButton) { playAudioWithVariablePitch(-1000) } func playAudioWi 我有一个应用程序记录,然后播放音频文件.目前,通过耳机扬声器播放音频.有人能告诉我 Swift如何处理编码以强制音频输出扬声器吗?

下面是我用来播放音频文件的一个实例:

@IBAction func playAudioVader(sender: UIbutton) {    playAudioWithVariablePitch(-1000)    }    func playAudioWithVariablePitch(pitch: float){    audioPlayer.stop()    audioEngine.stop()    audioEngine.reset()        var audioPlayerNode = AVAudioPlayerNode()        audioEngine.attachNode(audioPlayerNode)        var changePitchEffect = AVAudioUnitTimePitch()        changePitchEffect.pitch = pitch        audioEngine.attachNode(changePitchEffect)        audioEngine.connect(audioPlayerNode,to: changePitchEffect,format: nil)        audioEngine.connect(changePitchEffect,to: audioEngine.outputNode,format: nil)        audioPlayerNode.schedulefile(audiofile,atTime: nil,completionHandler: nil)        audioEngine.startAndReturnError(nil)        audioPlayerNode.play()}   overrIDe func vIEwDIDLoad() {    super.vIEwDIDLoad()    audioPlayer = AVAudioPlayer(contentsOfURL:receivedAudio.filePathURL,error: nil)    audioPlayer.enableRate = true    audioEngine = AVAudioEngine()    audiofile = AVAudiofile(forReading:receivedAudio.filePathURL,error: nil)}
解决方法 编辑2017年7月:请参阅Husam对Swift 2.0解决方案的回答.

从Swift 1.2开始,您使用overrIDeOutputAudioPort和AVAudioSessionPortOverrIDe.它可以通过这样的方式实现:

if !session.overrIDeOutputAudioPort(AVAudioSessionPortOverrIDe.Speaker,error:&error) {   println("Could not set output to speaker")   if let e = error {      println(e.localizedDescription)   }}

我正在开发一个现在使用它的应用程序,我有一个名为setSessionPlayandRecord的函数,它看起来像:

func setSessionPlayAndRecord() {    let session:AVAudioSession = AVAudioSession.sharedInstance()    var error: NSError?    if !session.setcategory(AVAudioSessioncategoryPlayAndRecord,error:&error) {        println("Could not set session category")        if let e = error {            println(e.localizedDescription)        }    }    if !session.overrIDeOutputAudioPort(AVAudioSessionPortOverrIDe.Speaker,error:&error) {        println("Could not set output to speaker")        if let e = error {            println(e.localizedDescription)        }    }    if !session.setActive(true,error: &error) {        println("Could not make session active")        if let e = error {            println(e.localizedDescription)        }    }}
总结

以上是内存溢出为你收集整理的xcode – 使用Swift通过iPhone扬声器强制播放音频文件全部内容,希望文章能够帮你解决xcode – 使用Swift通过iPhone扬声器强制播放音频文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1103957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存