0

当我使用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_lNkKzZcu9H0zK2MWtzpFlcZy&itag=160&aitags=133%2C134%2C135%2C136%2C160%2C242%2C243 %2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C308%2C315&source=youtube&requiressl=yes&mh=gk&mm=31%2C26&mn=sn-3u-bh2z7%2Csn-npoe7n7y&ms=au%2Conr&mv=m&mvi=8&pl=19&initcwndbps=788750&vprv =1&mime=video%2Fmp4&ns=jfZ8U00MujnTak6BPZ_zlrwG&gir=yes&clen=1888996&dur=142.133&lmt=1618484719885227&mt=1625834690&fvip=6&keepalive=yes&fexp=24001373%2C24007246&c=WEB&txp=5311224&n=4ulp20myHUPq6KhHdK&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv% 2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgTa5l0xWa2Qsz4xb26XBTGskRvwNwIukJLVO8mk1k1J4CIB6BOZqksCXIkip-GZg37MbYxrzdXOCKVK0-fXdJSjZg&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAI-b9_flZCHzRIiufpnLOXjPsbuxeg9J3uUofLrfnR4xAiA6wh-F3tmzpHfY3-vOL2N4XQudfvdILD1qsNRpME7Z_A%3D%3D&ratebypass=yes

当我用控制台检查“testvalue”值时,我正常得到它。

即使我将链接粘贴到 Chrome 中,它也可以正常工作,但为什么它不能从 react-native 正常工作?

4

0 回答 0