2011-02-04 29 views
10

He encontrado muchos hilos sobre el soporte de la etiqueta en Android. Hasta ahora, parece que incluso Android Froyo 2.2 no puede reproducir audio (he hecho pruebas en Nexus One).HTML5 <audio> etiqueta en Android

De acuerdo con la página web www.html5test.com, la etiqueta en sí es compatible, pero no hay códecs en el navegador (mp3, ogg ..). Entonces, ¿cómo puedo resolver el problema?

Hasta ahora veo solo una solución, use el reproductor integrado Flex o Flash, que puede reproducir mp3. ¿Es eso correcto? ¿Es esa la única forma en que puedo reproducir .mp3 u otra transmisión de audio en el navegador web de Android?

¿Android 2.3 Gingerbread es compatible con alguna transmisión de audio?

Muchas gracias BR Sten

añadida más tarde: La solución de trabajo, finalmente he usado es una pequeña .swf Flex para la transmisión. Se puede integrar fácilmente con la página web HTML (la comunicación Flex-Javascript funciona bastante bien). El único problema es que en algunos teléfonos Flash Player no se reinstala y debe descargarse primero de Android Market.

Agregado incluso más tarde: Bueno, el elemento <audio> está libre de errores, incluso en Android 2.3 - No sé lo que están haciendo en Google que una cosa tan simple es un problema. El uso de Flex Player es malo, pero el problema es que en algunos teléfonos el reproductor Adobe Flash no se puede instalar desde el mercado de Android, porque hay algunos requisitos de Adobe HW como CPU de 1Ghz, etc. Algunos proveedores como HTC proporcionan los propios reproductores Flash. pero esos son bastante malos y no funcionan correctamente con el AS 3.0 ... Hasta ahora, todo funciona perfectamente, especialmente en teléfonos Samsung (como Nexus S o Galaxy S).

+0

He estado experimentando un poco con la etiqueta de audio para que funcione con Android 2.3, pero me he quedado corto (usando el emulador).Sin embargo, usando el elemento

Respuesta

6

Lo que desenterras está de acuerdo con lo que me he topado también. 2.2 soporta la etiqueta de audio, pero no tiene los codecs que la respalden, esto es al parecer un error que se ha fijado en las versiones más allá de Froyo:

http://code.google.com/p/android/issues/detail?id=9372

He usado la etiqueta de audio con un archivo mp3 en mi Nexus S , funciona correctamente allí (para la versión de firmware más reciente al menos).

+0

Hola, la versión mínima es Android OS 2.3, ¿verdad? ¿Cuáles son las soluciones de respaldo? ¿Flash/Flex jugadores incrustados? Muchas gracias por un comentario. BR STeN – STeN

+0

Supongo que flash podría ser una opción, pero temo que no puedo ofrecer ningún consejo práctico allí. Solo estoy esperando que 2.3 esté ampliamente disponible en su lugar. – mikerowehl

+0

Hola, decidí incluir el pequeño reproductor de flujo flexible en mi aplicación web como una especie de solución temporal hasta que el 2.3 se utilizará ampliamente. ¿Sabes cómo registrar JavaScript si Flash Player está instalado? Gracias – STeN

6

Olvidé preguntar primero. ¿Estás pensando en desarrollar una aplicación de Android o simplemente una aplicación web normal? Debido a esta solución necesitaría el código de Android.

Si no estás considerando usar el código de Android, entonces puedes omitir el resto del mensaje, ¡lo siento!

============================================== =================================

Aquí hay algún truco: puede usar enlaces regulares a sus archivos de audio, o el uso de JavaScript para redirigir a uno de los archivos (si se deja Javascript hacerlo), y luego anular la carga Url, así:

mWebView.getSettings().setJavaScriptEnabled(true); 
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
mWebView.setWebViewClient(new WebViewClient(){ 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if (url.endsWith(".ogg")){ 
      Log.d(TAG, "Reproducir archivo OGG"); 
      Uri tempPath = Uri.parse(url); 
      MediaPlayer player = MediaPlayer.create(WebViewVideo.this, tempPath); 
      player.start(); 
      return true; 
     }else{ 
      return super.shouldOverrideUrlLoading(view, url); 
     } 
    } 

}); 

Espero que esto ayude, que hace por mí!

Atentamente.

+0

Hola, gracias por tu sugerencia interesante: podría ser útil para mí en otra aplicación ... Lamentablemente esta vez estoy haciendo una aplicación web realmente pura ...: ((BR STeN) – STeN

Cuestiones relacionadas