开发者社区 问答 正文

在VOD-视频点播调用prepare后,为什么没有回调?

在VOD-视频点播调用prepare后,为什么没有回调?

展开
收起
三分钟热度的鱼 2023-06-20 13:58:34 125 分享 版权
来自: 阿里云视频云
2 条回答
写回答
取消 提交回答
  • 开启了自动播放,就不会收到 prepare 完成回调,关闭自动播放才会收到。此回答整理自钉群“阿里云-VOD-视频点播-技术交流(进群先看公告)”

    2023-06-20 14:29:18
    赞同 展开评论
  • 在调用 AliyunVodPlayer 的 prepare 方法后,如果没有回调,可能是因为以下原因:

    1.网络连接问题:prepare 方法通常需要从网络上获取视频的元数据,如果网络连接不好或者连接超时,就可能导致无法获取元数据,进而无法回调对应的事件。

    2.视频格式问题:如果视频格式不支持或者视频文件损坏,也会导致无法获取元数据,进而无法回调事件。

    3.调用的线程不正确:根据 AliyunVodPlayer 的官方文档,prepare 方法是异步调用的,即是在子线程中进行的。因此,在调用 prepare 方法时,需要保证是在正确的线程中进行,否则就可能会由于线程问题而导致无法收到回调事件。

    4.监听器没有设置:在调用 prepare 方法前,需要设置 AliyunVodPlayer 的监听器,才能够接收到对应的事件回调。否则,即使 prepare 方法成功执行,也不会触发任何事件回调。例如,您可以通过以下方式设置监听器:

    AliyunPlayer aliyunPlayer = new AliyunPlayer(context);
    //设置监听器
    aliyunPlayer.setOnPreparedListener(new OnPreparedListener() {
        @Override
        public void onPrepared() {
            //回调事件
        }
    });
    //调用 prepare 方法
    aliyunPlayer.prepare();
    

    以上是一些可能导致 prepare 方法无回调的原因,您可以根据具体情况进行排查和调试。

    2023-06-20 14:29:18
    赞同 展开评论