下面是我用来播放音频文件的一个实例:
@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扬声器强制播放音频文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)