2013-03-19 14 views
6

Tag dźwiękowy HTML5 nie działa w widoku internetowym, jeśli plik źródłowy jest przechowywany lokalnie. tjZnacznik HTML5 nie działa w przeglądarce Android Web View

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

To działa, gdy plik jest dostępny z serwera jak src="http://example.com/audio.mp3"

próbuję go na Android ICS.

Istnieje kilka obejść, jak podano here. Ale nie rozumiem, dlaczego ten problem występuje.

Jakieś rozwiązanie lub spostrzeżenia, dlaczego tak się dzieje?

Dziękuję.

+0

Spróbuj podać pełną ścieżkę. – magirtopcu

+0

Próbowałem podać pełną ścieżkę. Nadal nie działa. – varun1505

+0

jaka jest lokalizacja pliku? – Vineet1982

Odpowiedz

2

to właśnie AlterNet sposób, aby osiągnąć cel, aby odtwarzać dźwięk z pliku html

użycie Mediaplayer (http://developer.android.com/reference/android/media/MediaPlayer.html) Android do odtwarzania dźwięku. można wywołać funkcję android z JavaScript, które zostały napisane w pliku HTML ..

ten jest przykładem tego, jak można wywołać funkcję napisane w pliku java z kodu 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> 

ten sposób powoływania audio z kodu Android.

+0

. Tak właśnie zrobiłem. użył interfejsu javaScriptInterface i wywołał funkcję z javascript. Zrobiłem to samo również w przypadku filmów. – varun1505

1

wydaje się to bardzo głupim błędem w widoku webowym. Jednym z rozwiązań jest obecnie "kodowanie" dźwięku jako pliku MP4, a następnie łączenie go za pomocą tagu wideo.

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

To pokaże czarny prostokąt (brak wideo), a także elementy sterujące w środku. To zdecydowanie nie jest najlepsze rozwiązanie, ale najłatwiejsze. Możesz użyć Miro Video Converter na Mac i Windows, aby utworzyć taki MP4.

Powodzenia :)

Powiązane problemy