录制完成后保持视频播放器静音

时间:2015-04-14 13:27:03

标签: ios ios8 avfoundation avplayer avcapturesession

如何在录像机初始化并打开静音切换后保持视频播放器静音?

在我正在处理的应用程序中,我有一个视频播放器(将其称为播放器)和一个录像机(将其称为录像机)。如果手机处于静音模式(设备侧面的开关打开以禁用声音),播放器在进入应用程序时保持静音,这是预期的和期望的结果。但是在录音机开始运行会话后,这种行为会丢失,虽然启用了静音模式,但视频会大声播放。

我特别知道在startRunning调用AVCaptureSession时会发生这种情况。 我也知道原因是在[AVAudioSession sharedInstance] categorymode属性中的某个位置,它似乎在会话开始运行后立即更改。

所以我现在所做的就是打电话

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategorySoloAmbient error:&error];
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeDefault error:&error];
记录完成后

重置会话。问题是大多数但不是所有情况都有效,有时报告错误,有时会延迟,有时根本不起作用。

我正在寻找的可能解决方案(任何人都可以)

  • 以某种方式阻止录音机启用声音播放
  • 在录制完成后有一个明确的方法重置类别和模式(没有错误或行为不端)
  • 有一个干净的解决方案来找到沉默按钮的状态(似乎旧的功能已被弃用,我找不到任何东西,但黑客攻击)
  • 欢迎任何其他想法

一个重要的信息是,我一直初始化播放器录音机以便快速使用。我也可以控制播放器静音。

我用于播放器的内容:

  • AVFoundation
  • AVPlayer
  • AVPlayerLayer
  • 来源是代表远程网址的AVAsset

实施非常标准。

我用于录音机的内容:

  • AVFoundation
  • AVCaptureDeviceInput
  • AVCaptureMovieFileOutput
  • AVCaptureVideoPreviewLayer
  • 同样非常标准。

0 个答案:

没有答案