2017-05-17 1 views
0

Je n'arrive pas à obtenir Cordova-plugin-media pour fonctionner. J'utilise le studio Android et l'émulateur Android pour mac, c'est mon code. J'ai fait un onclick dans le fichier index.html, mais rien ne se passe. J'ai ajouté le code pour le plugin media dans le fichier index.js. Tous les fichiers codrova et le plugin média sont installés et ajoutés.cordova-plugin-media Dernière version Qu'est-ce que je fais de mal

index.js

var app = { 
// Application Constructor 
initialize: function() { 
    document.addEventListener('deviceready', 
this.onDeviceReady.bind(this), false); 
}, 

// deviceready Event Handler 
// 
// Bind any cordova events here. Common events are: 
// 'pause', 'resume', etc. 
onDeviceReady: function() { 
    this.receivedEvent('deviceready'); 

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


}, 

// Update DOM on a Received Event 
receivedEvent: function(id) { 
    var parentElement = document.getElementById(id); 
    var listeningElement = parentElement.querySelector('.listening'); 
    var receivedElement = parentElement.querySelector('.received'); 

    listeningElement.setAttribute('style', 'display:none;'); 
    receivedElement.setAttribute('style', 'display:block;'); 

    console.log('Received Event: ' + id); 
} 
}; 

app.initialize(); 

index.html

<div data-role="main" class="ui-content"> 
      <span class="ui-block-a"> 
      <img src="img/grongoling.jpg"><h2>Gröngöling</h2> 
      <a href="#" class="ui-btn ui-corner-all ui-icon-audio ui- 
btn-icon-notext right" onclick="playAudio('sounds/grongoling.mp3');"> 
</a> 
      </span> 
      <span class="ui-block-a"> 
      <img src="img/kattuggla.jpg"><h2>Kattuggla</h2> 
      <a href="#" class="ui-btn ui-corner-all ui-icon-audio ui- 
btn-icon-notext right" 
onclick="playAudio('sounds/kattuggla.mp3');"></a> 
      </span> 
      <span class="ui-block-a"> 
      <img src="img/korp.jpg"><h2>Korp</h2> 
      <a href="#" class="ui-btn ui-corner-all ui-icon-audio ui- 
btn-icon-notext right" 
onclick="playAudio('sounds/korp.mp3');"></a> 
      </span> 
      <span class="ui-block-a"> 
      <img src="img/storrehackspett.jpg"><h2>Större 
Hackspett</h2> 
      <a href="#" class="ui-btn ui-corner-all ui-icon-audio ui- 
btn-icon-notext right" 
onclick="playAudio('sounds/storrehackspett.mp3');"></a> 
      </span> 
      <span class="ui-block-a"> 
      <img src="img/tofsvipa.jpg"><h2>Tofsvipa</h2> 
      <a href="#" class="ui-btn ui-corner-all ui-icon-audio ui- 
btn-icon-notext right" 
onclick="playAudio('sounds/tofsvipa.mp3');"></a> 
      </span> 
      </div> 
+0

Pouvez-vous s'il vous plaît mettre à jour votre message pour mieux expliquer votre problème? – moritzg

+0

@VladimirGatara Une erreur sur la console lors de l'invocation du plugin? – Gandhi

Répondre

0

Je pense que vous devrez définir le playAudio() - fonction en dehors du onDeviceReady() - fonction pour qu'elle soit globalement accessible et de pouvoir l'appeler directement à partir du HTML.

De plus, vous initiez la variable my_media en dehors de la fonction et la recréer avec var dans la fonction. Pensez à créer une variable globale my_media et définissez-la dans la fonction sans var ou créez-la à chaque fois dans la fonction.

+0

Invocation de code de plugin ne peut pas se produire en dehors de l'appareil prêt. Donc, je suppose que cela peut ne pas être valide – Gandhi