2012-05-10 14 views
6

Ich bin ein Anfänger in HTML und Java und ich versuche, Audio-Dateien in einer einfachen Web-App auf dem Android über die Web-Ansicht mit HTML und Java zu spielen. Es ist mir gelungen, dies unter Android 4.0 zum Laufen zu bringen. Es wird jedoch nicht auf 2.3.3 oder 2.2 funktionieren. Ich habe viel geforscht und bisher habe ich festgestellt, dass es nicht unterstützt wird. Kann das jemand bestätigen oder leugnen und mir möglicherweise in die richtige Richtung weisen? Hier ist, was ich an 4.0 arbeite, aber sonst nichts.Html Audio in 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); 

Wie kann ich den gleichen Code für 2.3.3 bekommen? Bei meinen Nachforschungen stieß ich auf jemanden, der die Audiodatei mit dem Video-Tag abspielen konnte, aber ich konnte das nicht funktionieren. Jedes geteilte Wissen wird sehr geschätzt.

Antwort

3

Ja. Leider wird HTML5-Audio-Element nur von Gingerbread unterstützt.

Ich lese, dass das Audio-Tag in 2.2 2.3.& irgendwie unterstützt wird, aber aus irgendeinem sehr seltsamen Grund sind die mp3 & ogg Codecs nicht. Daher ist es auch auf Handys bis zu Android 2.3 nutzlos, selbst wenn es unterstützt wird.

SOLUTION 1 Die Video-Tag Abhilfe (1,6 bis 2,2) ist die folgende:

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

ist diejenige, die Sie versucht?

SOLUTION 2 Eine andere mögliche Lösung (2.2 +) ist ein JQuery-Player mit Flash-Rückfall zu implementieren, wie UbaPlayer.

SOLUTION 3 Schließlich .. gibt es eine Java-Problemumgehung von einem anderen Benutzer von Stackoverflow, hier:

..Hope das hilft :)

0

ich auch hatte das gleiche Problem, die Lösung arbeitete für mich ist .. Mediaplayer verwenden (http://developer.android.com/reference/android/media/MediaPlayer.html) von Android zum Abspielen von Audio. können Sie Funktion von Android von Javascript aktivieren, die Sie in HTML-Datei geschrieben haben ..

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> 

diese Weise können Sie Audio von Android-Code aufrufen.

1

Nur ein kurzer Einzeiler für neue Besucher - versuchen Sie die folgend in Ihrem webview Einstellung Code:

mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false); 

Es behebt erfolgreich das Audio-Wiedergabe Problem!

0

Tag Audio funktioniert nur für mich mit .loadUrl("https://webpage.html").

Mit wurde nicht unterstützte MIME-Nachrichten angezeigt.