0

youtube-dl から取得したアドレスを、react-native-Video のソース領域に componentDidmount を使用して挿入すると、エラーが発生します。

しかし、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&requiresl = yes&mh = gk&mm = 31%2c26&mn = sn-3u = 7 = MSINPのin Intcsnpoe2mcnpoe2mc =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