miércoles, 28 de mayo de 2014

Cordova Media Plugin: Primer intento fallido

Hemos intentado implementar con Apache Cordova la siguiente aplicación, el funcionamiento es bastante simple: se carga un fichero de audio y se reproduce automáticamente. Una vez que consigamos esto intentaremos implementar botones de reproducción, pausa, etc... Pero de momento estamos atascados con el reconocimiento del fichero de audio en sí.

 <!DOCTYPE html>  
 <html>  
   <head>  
     <meta charset="utf-8" />  
     <meta name="format-detection" content="telephone=no" />  
     <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />  
     <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">  
           <script type="text/javascript">  
       // Wait for device API libraries to load  
                //  
                function onLoad() {  
                     var my_media = null;  
                     document.addEventListener("deviceready", onDeviceReady, false);  
                }  
                // device APIs are available  
                //  
                function onDeviceReady() {  
                          var my_media = new Media("https://ia600808.us.archive.org/21/items/NasaAudioHighlightReels/Launch-Sound_STS-1-Launch.mp3",  
                               // success callback  
                               function () {  
                                    alert("playAudio():Audio Success");  
                               },  
                               // error callback  
                               function (err) {  
                                    alert("playAudio():Audio Error: " + err);  
                               }  
                          );  
                          my_media.play();  
                }  
     </script>  
     <title>Hello World</title>  
   </head>  
   <body onload="onLoad()">  
     <br/>  
     <br/>  
           <div class="container">  
                <div class="jumbotron">  
         <div class="row">  
             <div class="col-md-2"><img src="img/logo.png" class="img-responsive" alt="Responsive image"></div>  
           <div class="col-md-10"><h1>Cordova Media Plugin</h1></div>  
         </div>  
                     <button type="button" id="play" class="btn btn-primary"><span class="glyphicon glyphicon-play"></span></button>  
                     <button type="button" id="pause" class="btn btn-success"><span class="glyphicon glyphicon-pause"></span></button>  
                </div>  
           </div>  
           <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->  
           <script src="http://code.jquery.com/jquery.js"></script>  
           <!-- Include all compiled plugins (below), or include individual files as needed -->  
           <script src="js/bootstrap.min.js"></script>  
           <script src="js/jquery.min.js"></script>  
     <script type="text/javascript" src="cordova.js"></script>  
     <script type="text/javascript">  
       app.initialize();  
     </script>  
   </body>  
 </html>  

La consola de Eclipse ( "LogCat" en Android Developer Tools) notifica del siguiente error:

 Uncaught ReferenceError: Media is not defined at file:///android_asset/www/index.html:19  

Hemos intentado encontrar alguna solución por internet. Muchas pasaban por revisar los parámetros del plugin en los ficheros xml, modificar la ruta del fichero de audio, reinstalar el plugin... Pero ninguna ha dado resultado. Por lo que el problema es el siguiente: el plugin está instalado pero el emulador no reconoce la clase Media.

No hay comentarios:

Publicar un comentario