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

调用OpenTok getStream方法时报“The OpenTok API request failed: Stream not found”错误

OpenTok调用getStream接口返回Stream not found问题解决方案

报错信息:The OpenTok API request failed: Stream not found

常见触发原因及修复方案

  • 流已过期或销毁:OpenTok的流ID仅在流处于活跃推流状态时有效,推流端断开连接、主动销毁流、会话过期都会导致原流ID失效。你现有代码硬编码了固定流ID,大概率使用的是之前测试生成的已失效ID,不要在代码里写死sessionId和streamId,改为在前端推流成功后,将当前活跃的会话ID和对应流ID实时传回后端再调用getStream。
  • sessionId与streamId不匹配:传入的streamId不属于当前传入的sessionId对应的会话,需确保获取流ID时所在的会话和传入getStream的sessionId完全一致,禁止跨会话调用。
  • 鉴权凭证不匹配:初始化OpenTok实例时使用的api key、secret,和生成对应sessionId、streamId时使用的凭证不是同一组,需核对配置项中的opentok_key和opentok_secret是否正确。
  • 调用时机错误:getStream需在流成功推送到OpenTok服务器后再调用,若在推流请求刚发起、连接还未建立时调用就会报错,建议等待前端推流成功的回调触发后再执行后端getStream逻辑。

问题代码及调试方法

你现有代码硬编码固定会话ID和流ID,参考如下:

public function index1(){
    $opentok = new OpenTok($this->config->item('opentok_key'), $this->config->item('opentok_secret'));

    $sessionId = "1_MX40NOTI2NH5-MTYzMjQ4MDI5MDY1Nn5tNTg0aHpSRjdoTTdDb1pHUDNKYUZuSGR-fg";
    $streamId = "cf91b5ac-f995-4f77-9c5a-23cf14325720";
    $stream = $opentok->getStream($sessionId, $streamId);

    $this->load->view('index1');
}

快速验证方法:调用$opentok->listStreams($sessionId)获取当前会话下所有有效流ID,对比你传入的streamId是否在返回列表中,可快速定位是流不存在还是参数匹配错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:30:01