2012-05-10 26 views
6

Soy un principiante en HTML y Java y estoy intentando reproducir archivos de audio en una simple aplicación web en Android a través de la vista web usando HTML y Java. He logrado hacer que esto funcione en Android 4.0. Sin embargo, no funcionará en 2.3.3 o 2.2. He investigado mucho y hasta ahora todo lo que he encontrado es que no es compatible. ¿Alguien puede confirmar o negar esto y posiblemente apuntarme en la dirección correcta? Esto es lo que tengo trabajando en 4.0, pero nada más.Html Audio en Android Webview

WebView engine = (WebView) findViewById(R.id.web_engine); 

String audioTest = "<html>" + <br/> 
       "<body>" + <br/> 
       "< audio id='egSound' preload='auto' autoplay ='autoplay'>" + <br/> 
       "< source src=' www.egSoundUrl.com '>" +      
       "< /audio>" + <br/> 
       "< /body>" + 
       "< /html>"; 

engine.loadData(audioTest, "text/html", null); 

¿Cómo puedo obtener el mismo código para 2.3.3? En mi investigación me encontré con alguien que podía reproducir el archivo de audio usando la etiqueta de video, pero no pude hacerlo funcionar. Cualquier conocimiento compartido será muy apreciado.

Respuesta

3

Yep. Tristemente, el elemento de audio HTML5 solo es compatible con Gingerbread.

He leído que la etiqueta de audio ES compatible de alguna manera en 2.2 & 2.3, pero por alguna razón muy extraña los mp3 & ogg no son códecs. Por lo tanto, incluso si es compatible es inútil en teléfonos hasta Android 2.3.

SOLUCIÓN 1 La solución etiqueta video (1.6 a 2.2) es la siguiente:

<video src="soundfile.mp3" onclick="this.play();"></video> 

es el que se trataron?

SOLUCIÓN 2 Otra posible solución (2.2 +) es la implementación de un repliegue jQuery jugador con Flash, como UbaPlayer.

SOLUCIÓN 3 Por último .. hay una solución java por otro usuario de stackoverflow, aquí:

..Hope esto ayuda :)

0

también tuvo el mismo problema, la solución funcionó para mí es .. uso Mediaplayer (http://developer.android.com/reference/android/media/MediaPlayer.html) de Android para reproducir audio. puede invocar la función de Android de javascript que usted ha escrito en archivo HTML ..

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 manera se invoca el audio de código de Android.

1

Sólo un rápido de una sola línea para los nuevos visitantes - intente utilizar el siguiente código dentro de su vistaweb ajustes:

mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false); 

Fija con éxito el problema de reproducción de audio!

0

Tag Audio acaba de funcionar para mí usando .loadUrl("https://webpage.html").

Con .loadData(htmlString, "text/html", null) aparecía Mensajes de mime no soportados.