【发布时间】:2016-02-24 07:18:31
【问题描述】:
我有一个应用需要:
- 使用应用时播放的背景音乐(例如,spotify)
- 从 AVPlayer 观看电影时播放背景音乐
- 录制视频时停止音乐
与 Snapchat 一样,相机视图控制器是“滑动视图”的一部分,因此始终处于开启状态。
但是,当打开和关闭应用程序时,音乐会发出短暂的“噼啪”噪音/声音,破坏音乐。
我在这里记录下来: https://soundcloud.com/morten-stulen/hacky-sound-ios (3 次)
我使用这些设置来更改 appdelegate didFinishLaunchingWithOptions 中的 AVAudiosession:
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord,withOptions:
[AVAudioSessionCategoryOptions.MixWithOthers,
AVAudioSessionCategoryOptions.DefaultToSpeaker])
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print("error")
}
我使用 LLSimpleCamera 控件进行视频录制,并将会话设置为:
_session.automaticallyConfiguresApplicationAudioSession = NO;
似乎其他人对其他相机库也有同样的问题: https://github.com/rFlex/SCRecorder/issues/127
https://github.com/rFlex/SCRecorder/issues/224
这家伙删除了 audioDeviceInput,但我有点需要它来录制视频。 https://github.com/omergul123/LLSimpleCamera/issues/48
我也尝试过使用 Apple 的代码“AvCam”,但我仍然遇到同样的问题。 Snapchat 是如何做到这一点的?!
任何帮助将不胜感激,我很乐意提供更多信息或代码!
【问题讨论】:
-
您找到解决方案了吗?我需要同样的东西,但无法实现。
-
我找到了一个解决方案,但它不是最优的。我在开始录制时添加了 audiodeviceInput ( [self.session addInput:_audioDeviceInput]; ),并在完成后将其删除。同时我将 AVAudioSession Category 设置为 AVAudioSessionCategoryPlayAndRecord,之后我也将其切换回来。为了补偿奇怪的相机 UI 行为,我在顶部淡入和淡出模糊视图。
-
是的,我试过了。不是你说的最理想的。我还尝试使用 MixWithOthers、DuckOthers、DefaultToSpeaker 保留 PlayAndRecord 类别,但是当我启动会话时背景音乐停止了一秒钟。此外,音乐太大声(即使是 Duckothers),播放时我听不清自己的声音。
-
如果您在没有 audioInput 和 AVAudioSessionCategoryAmbient 的情况下启动会话,它不应该停止。我有没有 audioInput 的 AVAudioSessionCategoryAmbient ,它可以让您在拍照时听背景音乐以及应用程序中的所有其他内容,但在录制视频时不会录制声音。因此,我在开始录制时添加了 audioInput,同时切换到 AVAudioSessionCategoryPlayAndRecord 将淡出音乐。 (顺便说一句,如果您在拍摄时听音乐,即使是 Snapchat 在切换音频会话时也会发出噼啪声。我不相信有最佳解决方案)
标签: ios objective-c iphone audio avaudiosession