开发者社区 问答 正文

在视频点播使用如下方法调用replace的时候报错了怎么办?

aliplayer-vod-min.js 这个文件 第45350行 这个方法第二个参数u为undefined 所以调用replace的时候报错了怎么办?
4f47ec59726f3cfca23737b9db068708.png

展开
收起
乐天香橙派 2023-10-06 13:04:11 138 分享 版权
来自: 阿里云视频云
3 条回答
写回答
取消 提交回答
  • 月移花影,暗香浮动

    针对问题一:

    出现"undefined"的错误,可能的原因是该方法调用时,需要的参数并没有被正确地传递,或者在该位置应该有一个对象实例,但实际上却是undefined。由于无法直接访问你的代码,我建议你检查以下几个方面:

    检查这个方法被调用的地方,确认所有的必需参数都已经被正确传递。
    检查在该方法内部,对参数进行replace操作前,u值是否存在和被正确赋值。
    针对问题二:

    在升级到2.17.1版本后触发了error事件,提示需要把encryptType设置为1,但是设置encryptType为1后视频无法正常播放,且init事件也没有触发。这个问题可能与特定的配置或服务器设置有关。通常,encryptType设置为1会清除控制台,你无法看到日志可能会增加调试的难度。我建议你可以尝试以下步骤:

    检查你的服务器配置是否支持encryptType设置为1。如果不支持,你可能需要更改配置或找到其他方式来解决问题。
    如果你的服务器支持这个设置,那么可能是设置后某些步骤没有正确执行。你可以尝试调试你的代码,查看在设置encryptType为1后哪些步骤发生了改变,并确保这些步骤都被正确执行。
    你也应该检查你的播放器日志和错误日志,看看是否有其他可能影响视频播放的问题。
    针对问题三:

    这个问题你没有提供足够的信息来帮助我理解问题的具体情况和环境。你可以尝试提供更多的细节,例如你正在使用的代码、框架、库、服务器配置等。这样我才能更好地帮助你解决问题。

    2023-10-08 15:22:02
    赞同 展开评论
  • 我这播放是可以的。
    代码参考:
    new Aliplayer(
    {
    id: 'url-player-test',
    width: '100%',
    height: '350px',
    autoplay: true,
    encryptType: 1,
    vid: "",
    playauth: "",
    language: 'zh-cn',
    },
    function (player) {

            // 可以开始播放
            player.on('canplay', () => {
               // player.play()
            })
    
            // 暂停
            player.on('pause', (player) => {
              console.log('暂停')
              // heartBeatShotDown();
            })
          }
        )
    

    现在playauth过期了。可以先试试简单几个参数能否播放成功。代码里加这行,可以暂时关掉防调试破解的功能。
    Aliplayer.__unable2Anti9Debugger13Key = 'error';
    针对问题四的回答:preload: true,
    autoplay: true,
    encryptType: 1,
    playsinline: false
    用这个参数试试吧。
    此回答来自钉群“阿里云-VOD-视频点播-技术交流(进群先看公告)”

    2023-10-06 17:03:34
    赞同 展开评论
  • import json
    import requests
    def get_play_url(vid):
        url = 'https://your-aliyun-domain.com/vod/getPlayInfo'
        headers = {
            'Content-Type': 'application/json',
            'Authorization': 'Bearer yourAccessKeyId'
        }
        payload = {
            'method': 'GET',
            'version': '2.0',
            'action': 'GetPlayInfo',
            'params': {
                'vid': vid
            }
        }
        response = requests.post(url, data=json.dumps(payload), headers=headers)
        return response.json()['data']['playUrl']
    print(get_play_url('1b8f8b10b34971ed9e436633b79f0102'))
    

    以上代码应该能够获取视频的播放地址。如果返回的结果是空的,可能是以下原因导致的:

    1. 视频不存在或者已被删除。
    2. 访问权限不足,请确保您拥有足够的权限访问该视频。
    3. API接口存在问题,可以尝试更换API接口或使用其他方式获取播放地址。
    2023-10-06 15:35:43
    赞同 展开评论