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

SceneGraphDeveloperExtensions中mediaView重复播放出现-5错误码的解决方法

解决SceneGraph audio_mode返回后重播放-5错误码的方案

针对你遇到的首次播放正常、返回后再播放触发-5错误码的问题,以下是几种实用的解决思路:

  • 返回时强制释放音频资源
    按下返回键退出播放场景时,必须调用音频组件的close()方法,不能仅关闭场景。示例代码:

    function onKeyEvent(key as String, press as Boolean) as Boolean
      if press and key = "back" then
        m.audioPlayer.close() ' 彻底释放音频资源
        m.top.close()
        return true
      end if
      return false
    end function
    

    未执行close()会导致音频资源被占用,再次初始化时无法获取系统音频通道,触发-5错误。

  • 重进场景时重置音频实例
    重新进入播放场景时,销毁旧的音频组件实例后再创建新实例,不要复用:

    ' 播放场景初始化逻辑
    if m.audioPlayer <> invalid then
      m.audioPlayer.close()
      m.audioPlayer = invalid
    end if
    m.audioPlayer = createObject("roSGNode", "Audio")
    m.audioPlayer.audio_mode = "music" ' 匹配你的音频模式设置
    ' 后续设置音频URL、启动播放等操作
    
  • 等待资源加载完成再播放
    再次播放时,监听音频组件的loadStatus事件,确保资源加载完成后再调用play():

    m.audioPlayer.observeField("loadStatus", "onAudioLoadReady")
    
    function onAudioLoadReady(event as Object)
      if event.getData() = "ready" then
        m.audioPlayer.play()
      end if
    end function
    

    避免在资源未就绪时强行触发播放,这也是引发-5错误的常见原因。

  • 确认音频模式上下文正确切换
    如果切换过audio_mode类型,返回后需要明确重新设置目标模式,确保系统音频上下文完成切换,避免模式冲突导致的资源占用问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:35:57