gpt4 book ai didi

ios - 来自视频 : Default to speaker 的 Swift 音频

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:24:52 27 4
gpt4 key购买 nike

我正在尝试在 iPhone 上播放视频,如果视频中的音频能在 iPhone 扬声器上播放,那就太理想了。

但是,我在控制台上收到此错误:

audioSession error: The operation couldn’t be completed. (OSStatus error -50.)

这是我的代码::

    let player = AVPlayer(url: video_url)

let audioSession = AVAudioSession.sharedInstance()

do {
try audioSession.overrideOutputAudioPort(AVAudioSessionPortOverride.speaker)
} catch let error as NSError {
print("audioSession error: \(error.localizedDescription)")
}

// get the lenght of the video
self.video_duration = getMediaDuration(url: video_url) + 0.25

// notification for when video is over.
NotificationCenter.default.addObserver(self, selector: #selector(self.playerDidFinish), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player.currentItem)

// the video controller...
let controller = AVPlayerViewController()
controller.view.frame = self.view.frame
controller.player = player
controller.showsPlaybackControls = false
controller.view.tag = 99
self.video_ctrl = controller

// add controller as subview
self.view.addSubview(controller.view)
controller.player?.play()

我用谷歌搜索了这个错误,但没有看到任何结果。感谢您的帮助。

稍后在同一个应用程序中,我使用与上面相同的行为 AVAudioSession 播放音频文件,并且效果很好。之后,如果我重播视频,扬声器就会发出声音,就像我想要的那样。但为什么不是第一次发生呢?

最佳答案

只需使用选项.defaultToSpeaker:

do {
try AVAudioSession.sharedInstance().setActive(false)
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: .defaultToSpeaker)
try AVAudioSession.sharedInstance().setActive(true)
} catch let error as NSError {
print("AVAudioSession error: \(error.localizedDescription)")
}

关于ios - 来自视频 : Default to speaker 的 Swift 音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43399737/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com