You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VisionOS上AVPlayerViewController静音按钮异常问题求助

问题解决思路

1. 配置AVAudioSession激活音频控制

VisionOS中AVPlayer的音频交互依赖正确的音频会话配置,未设置会导致静音按钮无响应。在初始化AVPlayer前添加以下代码:

import AVFoundation

do {
    let audioSession = AVAudioSession.sharedInstance()
    try audioSession.setCategory(.playback, mode: .default)
    try audioSession.setActive(true)
} catch {
    print("音频会话配置失败: \(error.localizedDescription)")
}

该配置会激活播放类别的音频会话,确保系统能正确响应静音等音频控制指令。

2. 确认启用系统播放控件

检查你的VideoPlayer是否开启了默认播放控件(默认值为true,但手动设置为false会导致控件失效):

VideoPlayer(player: avPlayer)
    .showsPlaybackControls(true)

3. 同步AVPlayer的静音状态(可选增强)

若需要更稳定的状态同步,可以手动绑定AVPlayer的muted属性:

@State private var isMuted = false
private let avPlayer = AVPlayer(url: URL(string: "你的视频地址")!)

var body: some View {
    VideoPlayer(player: avPlayer)
        .onAppear {
            avPlayer.muted = isMuted
        }
        .onChange(of: isMuted) { newValue in
            avPlayer.muted = newValue
        }
}

4. 确保视图容器允许交互

检查VideoPlayer所在的父视图是否禁用了点击交互,同时添加合适的尺寸约束:

VideoPlayer(player: avPlayer)
    .frame(width: 800, height: 600)
    .allowsHitTesting(true)

关于悬停高亮问题,系统默认播放控件在VisionOS中原生支持悬停效果,若未显示,大概率是音频会话未配置导致控件处于非活跃状态,完成上述第1步配置后通常会恢复正常。

内容的提问来源于stack exchange,提问作者user155542

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 22:47:05