aliplayer-vod-min.js 这个文件 第45350行 这个方法第二个参数u为undefined 所以调用replace的时候报错了怎么办?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
针对问题一:
出现"undefined"的错误,可能的原因是该方法调用时,需要的参数并没有被正确地传递,或者在该位置应该有一个对象实例,但实际上却是undefined。由于无法直接访问你的代码,我建议你检查以下几个方面:
检查这个方法被调用的地方,确认所有的必需参数都已经被正确传递。
检查在该方法内部,对参数进行replace操作前,u值是否存在和被正确赋值。
针对问题二:
在升级到2.17.1版本后触发了error事件,提示需要把encryptType设置为1,但是设置encryptType为1后视频无法正常播放,且init事件也没有触发。这个问题可能与特定的配置或服务器设置有关。通常,encryptType设置为1会清除控制台,你无法看到日志可能会增加调试的难度。我建议你可以尝试以下步骤:
检查你的服务器配置是否支持encryptType设置为1。如果不支持,你可能需要更改配置或找到其他方式来解决问题。
如果你的服务器支持这个设置,那么可能是设置后某些步骤没有正确执行。你可以尝试调试你的代码,查看在设置encryptType为1后哪些步骤发生了改变,并确保这些步骤都被正确执行。
你也应该检查你的播放器日志和错误日志,看看是否有其他可能影响视频播放的问题。
针对问题三:
这个问题你没有提供足够的信息来帮助我理解问题的具体情况和环境。你可以尝试提供更多的细节,例如你正在使用的代码、框架、库、服务器配置等。这样我才能更好地帮助你解决问题。
我这播放是可以的。
代码参考:
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-视频点播-技术交流(进群先看公告)”
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'))
以上代码应该能够获取视频的播放地址。如果返回的结果是空的,可能是以下原因导致的: