etiqueta android html5 webview html5-audio

android - etiqueta a html5



La etiqueta HTML5<audio> no funciona en Android Webview (2)

la etiqueta de audio HTML5 no parece funcionar en la vista web si el archivo de origen se almacena localmente. es decir

<audio controls="controls"> <source src="my_local_audio_file.mp3" type="audio/mpeg" /> </audio>

Funciona cuando se accede al archivo desde un servidor como src="http://example.com/audio.mp3"

Lo intento en Android ICS.

Hay algunas soluciones como se indica aquí . Pero no entiendo por qué ocurre este problema.

¿Alguna solución o idea de por qué está sucediendo esto?

Gracias.


esto es solo una manera alternativa para lograr el objetivo de reproducir audio desde un archivo html

utilice Mediaplayer ( http://developer.android.com/reference/android/media/MediaPlayer.html ) de Android para reproducir audio. puede invocar la función de Android desde javascript que haya escrito en un archivo HTML.

este es un ejemplo de cómo se puede invocar la función escrita en el archivo java desde el código javascript

WebView webView = (WebView) findViewById(R.id.webview); webView.addJavascriptInterface(new WebAppInterface(this), "Android"); -------------------------------- public class WebAppInterface { Context mContext; /** Instantiate the interface and set the context */ WebAppInterface(Context c) { mContext = c; } /** Show a toast from the web page */ @JavascriptInterface public void showToast(String toast) { Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); } } --------------------------- java sript code <input type="button" value="Say hello" onClick="showAndroidToast(''Hello Android!'')" /> <script type="text/javascript"> function showAndroidToast(toast) { Android.showToast(toast); } </script>

De esta forma invocas audio desde el código de Android.


esto parece un error muy estúpido dentro de la vista web. Una solución alternativa actualmente es "codificar" el audio como un archivo mp4 y luego vincularlo a través de la etiqueta de video.

<video width="100%" height="48" controls> <source src="audioonly.mp4" type="video/mp4"> </video>

Esto mostrará un rectángulo negro (sin video) y también los controles dentro. No es, de lejos, la mejor solución, sino la más fácil. Puede usar Miro Video Converter en Mac y Windows para crear dicho mp4.

Buena suerte :)