【问题标题】:Video stops after use voice input on iOS在 iOS 上使用语音输入后视频停止
【发布时间】:2017-08-01 06:47:53
【问题描述】:

我正在开发一个实时社交应用,它可以让用户在观看游戏时进行文字聊天。

我发现当用户在键盘上点击语音输入时,AVPlayer 会停止视频。

我该如何解决这个问题?

【问题讨论】:

    标签: ios avfoundation avplayer avplayerlayer


    【解决方案1】:

    会发生这种情况,因为当您录制声音时,来自视频的声音会中断录制(从手机扬声器发出的声音会严重扭曲通过麦克风的声音)因此视频将自动停止。

    请尝试添加以下代码:(只需设置一次)

    AVAudioSession.sharedInstance().setCategory(AVAudioSessionCa‌​tegoryAmbient, error: nil) 
    AVAudioSession.sharedInstance().setActive(true, error: nil)
    

    【讨论】:

    • 但是 AVPlayer 和 AVPlayerItem 都不会改变他们的状态,很困惑。
    • 顺便说一句,当用户使用语音输入时,我发现 Facebook iOS 不会暂停他们的视频,但我无法判断他们是否在使用 AVPlayer。
    • 试试这个:AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient, error: nil) AVAudioSession.sharedInstance().setActive(true, error: nil)
    • 你只需要设置一次而不是每次。请尝试回到我身边
    • 只有模拟器没问题
    【解决方案2】:

    我的解决方案是添加观察者

    UITextInputCurrentInputModeDidChange

    我不知道如何同时播放视频和使用语音输入(就像 facebook iOS 行为一样)

    但是我可以在语音输入完成后恢复视频(就像 youtube iOS 行为一样)

    func textInputMethodDidChange(notification: NSNotification) {
    
        print("textInputMethodDidChange")
    
        if self.textInputMode == nil || self.textInputMode?.primaryLanguage != "dictation" {
    
            self.player.play()
    
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多