javascript - 如何在我的APP中获取youtube视频? (使用 Phonegap 构建)

标签 javascript android cordova youtube

我正在使用 Phonegap 构建一个应用程序,我想在我的应用程序中播放 YouTube 视频。我以为我可以使用 cordova 插件媒体来实现此目的,但它不起作用。有人知道我的代码有什么问题或者如何在我的应用程序中获取 YouTube 视频吗?谢谢

    <!doctype html>
<html>
    <head>       
        <title> KVL Leermomenten </title>
        <meta charset="utf-8"/>
        <link rel="stylesheet" href="phonegap.css">
        <script src="phonegap.js"></script> 
        <script src="javascript.js"></script> 
    </head>

    <body onload="loadScript()">
        <!-- pagina 0 homepagina -->
        <section class="show" id="page0">
            <h1><img  src="img/banner.png" alt="banner" /> </h1>

            <div class="tekst" >
                <p> Welkom bij de expo ‘KVL-Leermomenten’. Afgelopen jaar zijn Oisterwijkers uitgenodigd in de huiskamer van het Leerlokaal KVL om mee te denken over de toekomst van dit gebouw. Hier is het idee ontstaan om een expositie over de geschiedenis van de Koninklijke Verenigde Lederfabriek (KVL) te organiseren. Het Leerlokaal KVL heeft dit idee vertaald in deze expo samen met ruim 240 leerlingen van 2College Durendeal uit Oisterwijk.De expo ‘KVL-Leermomenten’ maakt de geschiedenis op twee manieren zichtbaar. Zo is er enerzijds een tijdlijn van de leerfabriek te zien en anderzijds worden herinneringen aan de draaiende leerfabriek verteld, door mensen die er zelf mee te maken hebben gehad.  Deze verhalen worden nu aan jullie doorgegeven en krijgen zo weer een nieuwe toekomst.  </p>
            </div>
        </section>

        <!-- pagina 1 rondleiding: native functie: vibrate -->
        <section class="hide" id="page1">
            <h1><img  src="img/banner_rondleiding.png" alt="banner" /> </h1>
            <div class="tekst" >
                <p> Bekijk hieronder de video waarbij je een rondleiding krijgt in de expositie.  </p>
            </div>
            <div id="playAudio" src="https://www.youtube.com/watch?v=P6qFCqOy3HU" />

            <button id="volgende" />    <button id="vorige"/> 

        </section>

        <!-- pagina 2 op locatie: native functie: gps -->
        <section class="hide" id="page2">
            <h1><img  src="img/banner_oplocatie.png" alt="banner" /> </h1>
            <div class="tekst" >
                <p> Bekijk hier uw locatie.  </p>
            </div>
            <div id="GPS"> </div>
            <!-- <img id="myImage" src=""/> -->
        </section>

        <!-- pagina 3 mijn expo, native functie: camera-->
        <section class="hide" id="page3">
            <h1><img  src="img/banner_mijnexpo.png" alt="banner" /> </h1>
            <div class="tekst" >
                <p> Maak je eigen expositie over erfgoed! </p>
            </div>
            <button id="foto"> </button>
            <img id="myImage" src=""/>

        </section>

        <!-- pagina 4 rondleiding; filmpje 2 -->
        <section class="hide" id="page4">
            <h1><img  src="img/banner_rondleiding.png" alt="banner" /> </h1>
            hier komt filmpje 2

        </section>

        <!-- navigatie -->
        <nav>
            <button class="up" id="nav1"></button>
            <button class="up" id="nav2"></button>
            <button class="up" id="nav3"></button>
        </nav>

    </body>

</html>

Javascript

function loadScript() {
// Wait for device to be ready loading everything

onDeviceReady();
    };

// When device is ready
function onDeviceReady() {


    document.getElementById('nav1').addEventListener('mousedown', nav1Down, false); //mousedown = touchstart for app
    document.getElementById('nav1').addEventListener('mouseup',  page1Show, false); //mouseup = touchend for app
    document.getElementById('nav2').addEventListener('mousedown', nav2Down, false);
    document.getElementById('nav2').addEventListener('mouseup',  page2Show, false);
    document.getElementById('nav3').addEventListener('mousedown', nav3Down, false);
    document.getElementById('nav3').addEventListener('mouseup',  page3Show, false);
    document.getElementById('volgende').addEventListener('mousedown', volgendeDown, false);
    document.getElementById('volgende').addEventListener('mouseup',  page4Show, false);
    document.getElementById('foto').addEventListener('mousedown', fotoDown, false);
    document.getElementById('foto').addEventListener('mouseup',  fotoShow, false);
    document.getElementById('GPS').addEventListener('loadScript',  getGPS, false);
    document.getElementById('playAudio').addEventListener('loadScript',  playAudio, false);
    //document.getElementById('volgende').addEventListener('mousedown',  vibrateOn, false);
};

// Add some GUI to the touch events
function nav1Down() {
    document.getElementById('nav1').className='down';
};
function nav2Down() {
    document.getElementById('nav2').className='down';
};
function nav3Down() {
    document.getElementById('nav3').className='down';
};
function volgendeDown() {
    document.getElementById('volgende').className='down';
};

function fotoDown() {
    document.getElementById('foto').className='down';
};



// Activate the tabs
function page1Show() {
    document.getElementById('page0').className='hide';
    document.getElementById('page1').className='show';
    document.getElementById('page2').className='hide';
    document.getElementById('page3').className='hide';
    document.getElementById('page4').className='hide';
    document.getElementById('nav1').className='up';
};
function page2Show() {
    document.getElementById('page0').className='hide';
    document.getElementById('page1').className='hide';
    document.getElementById('page2').className='show';
    document.getElementById('page3').className='hide';
    document.getElementById('page4').className='hide';
    document.getElementById('nav2').className='up';
};

function page3Show() {
    document.getElementById('page0').className='hide';
    document.getElementById('page1').className='hide';
    document.getElementById('page2').className='hide';
    document.getElementById('page3').className='show';
    document.getElementById('page4').className='hide';
    document.getElementById('nav3').className='up';
};

function page4Show() {
    document.getElementById('page0').className='hide';
    document.getElementById('page1').className='hide';
    document.getElementById('page2').className='hide';
    document.getElementById('page3').className='hide';
    document.getElementById('page4').className='show';
    document.getElementById('volgende').className='up';
};

//Camera
function fotoShow(){
    navigator.camera.getPicture(onSuccess, onFail, { quality: 50,destinationType: Camera.DestinationType.FILE_URI });
}

function onSuccess(imageURI) {
    var image = document.getElementById('myImage');
    image.src = imageURI;
}

function onFail(message) {
    alert('Failed because: ' + message);
}


//GPS

// onSuccess Callback
// This method accepts a Position object, which contains the
// current GPS coordinates
//
function getGPS() {
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}


var onSuccess = function(position) {
    alert('Latitude: '          + position.coords.latitude          + '\n' +
          'Longitude: '         + position.coords.longitude         + '\n' +
          'Altitude: '          + position.coords.altitude          + '\n' +
          'Accuracy: '          + position.coords.accuracy          + '\n' +
          'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' +
          'Heading: '           + position.coords.heading           + '\n' +
          'Speed: '             + position.coords.speed             + '\n' +
          'Timestamp: '         + position.timestamp                + '\n');
};

// onError Callback receives a PositionError object
//
function onError(error) {
    alert('code: '    + error.code    + '\n' +
          'message: ' + error.message + '\n');
}






//Media

function playAudio(url) {
    // Play the audio file at url
    var my_media = new Media(url,
        // success callback
        function () {
            console.log("playAudio():Audio Success");
        },
        // error callback
        function (err) {
            console.log("playAudio():Audio Error: " + err);
        }
    );
    // Play audio
    my_media.play();
}

最佳答案

虽然我还没有对此进行测试,但您应该能够使用 IFRAME 来嵌入视频,因为 Cordova 只是将您的应用程序放入 Web View 中。 YouTube 有一个用于 IFRAME 使用的 JS API,可以在 https://developers.google.com/youtube/iframe_api_reference 找到。

关于javascript - 如何在我的APP中获取youtube视频? (使用 Phonegap 构建),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27782621/

相关文章:

javascript - Jquery 插入的表行的功能与原始 HTML 中的表行不同

javascript - 使用knockout css绑定(bind)动态绑定(bind)多个类(类的名称将来自一些可观察的变量)

javascript - 我有这个排序数组,我想根据点添加位置值。如果点相同位置将相同

java - CountdownTimer 未在 Runnable 中运行

android - 未安装 HAX 内核模块

java - 重复和android服务,完成后自动调用

javascript - 是否可以在不重新部署的情况下更新 PhoneGap 应用程序中的 HTML/CSS/JS 文件?

javascript - 通过 iframe 验证正在使用我的服务的网站

JavaScript 运行时错误 : 'Promise' is undefined

javascript - 如何将 PDF 作为二进制传递给 window.open()?