Cordova Media no reproducirá mp3 desde www

He encontrado un montón de posibles soluciones a este problema en StackOverflow, pero nada parece estar resolviendo para mí. Estoy intentando reproducir un archivo mp3 dentro de mi aplicación de Cordova (3.5) usando org.apache.cordova.media@0.2.10

 var sound = new Media('audio/el/hello.mp3'); sound.play() 

Pero simplemente no se reproducirá y obtendré el siguiente error en LogCat

 MediaPlayer error (1, -2147483648) 

He intentado servir la carpeta localmente y los trabajos siguientes que señalan en el mismo archivo

 var sound = new Media('http://10.0.2.2:9999/www/audio/el/hello.mp3'); sound.play() 

Lo que sugiere que no es porque el archivo tiene un problema de codificación.

No pude usar la última versión del plugin de media porque el evento deviceready nunca se deviceready .

Actualización : Acabo de intentar descomprimir los archivos en el almacenamiento persistente y reproducirlos desde allí y obtengo el mismo error.

Actualización : Pasando por la fuente AudioPlayer.java parece que el directorio www no es parte de los activos porque la siguiente llamada lanza una FileNotFoundException donde f == "www/el/hello.mp3"

 fd = this.handler.cordova.getActivity().getAssets().openFd(f); 

Sin embargo, si coloco los archivos directamente en la carpeta de assets entonces funciona.

3 Solutions collect form web for “Cordova Media no reproducirá mp3 desde www”

Ruta del archivo multimedia incorrecta. Debe obtener ruta correctamente:

 var getPathMedia = function () { var path = window.location.pathname; var phoneGapPath = path.substring(0, path.lastIndexOf('/') + 1); // Return path at www folder return 'file://' + phoneGapPath; }; var media = new Media(getPathMedia() + 'media/message.mp3'); media.play(); 

En android, sólo necesita tener la ruta correcta para la carpeta www .

Androide:

 var media = new Media("/android_asset/www/audio/el/hello.mp3", successFunction, errorFunction ); 

Si su aplicación va a ejecutarse en iOS también, debe agregar el /android_asset/www/ dinámicamente, ya que iOS no lo necesita.

IOS:

 var media = new Media("audio/el/hello.mp3", successFunction, errorFunction ); 

Finalmente me di cuenta de esto por mí mismo, pero pensé que compartiría.

Lo que necesitaba hacer no es conseguir la ubicación, sino la URL actual de la página en la que estaba. A partir de eso podría construir un url para el activo que quería jugar.

 var path = window.location.href; var phoneGapPath = path.substring(0, path.lastIndexOf('/') + 1); var media = new Media(phoneGapPath + 'media/message.mp3'); media.play(); 

espero que esto ayude

  • Importar el R.java de phonegap a mi plugin?
  • Instalar la aplicación de phonegap en el emulador de Android usando Windows CLI
  • ¿Cómo buscar y seleccionar un archivo de sdcard con Phonegap 3.0?
  • ¿Cómo forzar PhoneGap Android aplicación para realizar la actualización automática?
  • Android jónico falla llamadas AJAX con lista blanca de Cordova
  • Elija la cámara en la carga de archivos en la aplicación Córdoba en android sin utilizar la cámara cordova
  • Escáner de código de barras zxing en una div fija en phonegap android app
  • Pantalla de bienvenida animada con Phonegap
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.