当我使用componentdidmount将从youtube dl获得的地址插入react native video的源区域时,发生了一个错误。
但是,如果我手动将从youtube dl获得的地址放入一个变量并将其插入源代码中,它会再次工作。
componentDidMount(){
const {route, navigation} = this.props;
const {gameVid} = route.params;
if (gameVid != null) {
console.log('Didmount')
return new Promise((resolve, reject) => {
const rendertest = async (gameVid) => {
const format = await ytdl(gameVid, { quality: 'lowestvideo'},(err, info) => {
if(err){
reject(err);
console.log("promise error")
return;
}
});
let test = JSON.stringify(format[0].url);
return test
}
rendertest(gameVid).then(finalValue => {
console.log(typeof(finalValue)+": "+finalValue)
//this.state.testvalue = finalValue;
this.setState({
testvalue: finalValue,
done: true
});
})
//resolve(this.state.testvalue)
})
}else{
console.log("notmount")
}
}
从youtube dl获取的值
https://r8---sn-3u-bh2z7.googlevideo.com/videoplayback?expire=1625856923&ei=o0foykrcf5cygqpn85ywag&ip=121.173.203.153&id=o-aolrby2ahjsz2dc1wsr_lnkkkzzcu9h0zk2mwtzpflczy&itag=160&aitags=133%2c134%2c135%2c136%2c160%2c242%2c243%2c244%2c247%2c278%2c299%2c302%2c303%2c308%2c315&source=youtube&requiressl=yes&mh=gk&mm=31%2c26&mn=sn-3u-bhz7%2csn-npoe7月7日和7月7日和7月7日和7月7日和7月7日和7月7日和7月7日和7月7日和vvvvvvvvv=1和mime=1&m=1和2.2两个月和7月7日和7月7月和7月7月7日和7月7月7日和7月7月7日和7月7月7日和7月7日和7月7日和7和7月7月7月两两两两个两个两个视频和7和7月两个月两个金属和7和7和7和7月两个m m m m m=4和7月两个m m=4和7月两个m=2两个m=4和7月两个m=2两个m m=2两个m=2两个m=4和4和4和4和2两个m=4和4和4和2两两两两个m=2两个m=2 ns%2cgir%2cclen%2cdur%2clmt&sig=AOQ0QJ8Wraigta5L0xWA2QSZ4XB26XBTGSKWWNWUKJLVO8MK1J4CIB6BOZQKSCXIKIP-GZG37BYXRZDXOCKVK0-FXDJSJZGZ&lsparams=mh%2cmm%2cmn%2cmv%2cmvi%2cpl%2CINITICWNDBPS&lsig=ag3c\XAWQIHAI-b9\FLZCHZRIUFPNLOXJUBUX9FYWH-3FYWH-2cmn%2cmv%2cmvi=2cmvi%2cpl%3FYZ7CFL7DFD7YES=3%
当我用控制台检查“testvalue”值时,我正常得到它。
即使我在chrome中粘贴链接,它也能正常工作,但为什么它不能从react native正常工作呢?
暂无答案!
目前还没有任何答案,快来回答吧!