Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > iOS > Проигрывание видео с youtube в своем app ios


Автор: Osmosis_Johnes 7.12.2012, 00:05
Всем привет. Достался вот код по наследству. В titanium studio тестирую приложение под iphone. Функция проигрывания видео получает файл ответа с youtube, парсит его и должна запустить видео, но этого почему-то не происходит, кто-нить подскажет где собака зарыта?
Код

function playYoutubeVideo(video_id){
    Ti.API.info(windows['youtube']);
    if(windows['youtube']!=null){
        Ti.API.info('falshe');
        return false;
    }
    windows['youtube'] = Titanium.UI.createWindow({
        navBarHidden: false,
        title: 'Video',
        barColor: '#6c6c6c',
        backgroundColor:'#111'
     }); 
     
     buttonDone = Ti.UI.createButton({
            title: "Close",
            style: Titanium.UI.iPhone.SystemButtonStyle.DONE
    });
    windows['youtube'].setLeftNavButton(buttonDone);
        buttonDone.addEventListener('click', function() {
        windows['youtube'].close();
        windows['youtube'] = null;
    });
    windows['youtube'].open({modal:true});
                 
    url = 'http://youtube.com/get_video_info?video_id='+video_id; 
    xhr = Ti.Network.createHTTPClient({
        onload: function() {
         result = {};
         parse_str(this.responseText, result);
         Ti.API.info(this.responseText);
         
         if(this.responseText.match('errorcode=100')){
             showAlert('Error', 'This video has been removed by YouTube');
             windows['youtube'].close();
                windows['youtube'] = null;
             return false;
         }
         files = result['url_encoded_fmt_stream_map'].split(',url=');
            files[0] = files[0].substr(4);
            for(i=0; i<files.length; i++){
                file = urldecode(files[i]);
                if (strpos(file,'type=video/mp4') && strpos(file,"itag=18")){
                 file = file.split('codecs');
                     activeMovie = Titanium.Media.createVideoPlayer({
                        url:file[0],
                        backgroundColor:'#111'
                    });
                    if (parseFloat(Titanium.Platform.version) >= 3.2){
                        windows['youtube'].add(activeMovie);
                    }    
                    
                    windows['youtube'].addEventListener('close', function() {
                        activeMovie.stop();
                    });
                    activeMovie.play();
                }
            }
        },
        onerror: function(e) {
            showAlert('Error', 'Error Youtube Server');
        },
        timeout:3000
    });
    
    xhr.open("GET", url);
    xhr.send();
}


В video_id передается код видео с youtube (код можно увидеть в адресной строке браузера при открытии видео на youtube)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)