2013-03-19 7 views
6

thẻ âm thanh HTML5 dường như không hoạt động trong chế độ xem web nếu tệp nguồn được lưu trữ cục bộ. ví dụ:Thẻ HTML5 <audio> không hoạt động trong Android Webview

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

Nó hoạt động khi tập tin được truy cập từ một máy chủ như src="http://example.com/audio.mp3"

tôi đang cố gắng nó trên Android ICS.

Có một vài cách giải quyết như đã nêu here. Nhưng tôi không hiểu tại sao vấn đề này lại xảy ra.

Bất kỳ giải pháp hoặc thông tin chi tiết nào về lý do điều này xảy ra?

Cảm ơn bạn.

+0

Cố gắng cung cấp đường dẫn đầy đủ. – magirtopcu

+0

Tôi đã thử đưa ra đường dẫn đầy đủ. Nó vẫn không hoạt động. – varun1505

+0

vị trí của tệp là gì? – Vineet1982

Trả lời

2

này chỉ được alternet cách để đạt được mục tiêu để chơi âm thanh từ file html

sử dụng Media player (http://developer.android.com/reference/android/media/MediaPlayer.html) của Android để chơi âm thanh. bạn có thể gọi chức năng của Android từ javascript mà bạn đã viết trong tập tin HTML ..

đây là ví dụ về cách bạn có thể gọi chức năng bằng văn bản trong tập tin java từ mã 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> 

Bằng cách này bạn gọi âm thanh từ mã Android.

+0

đây là những gì tôi đã làm cuối cùng. đã sử dụng một javaScriptInterface và được gọi là hàm từ javascript. Tôi cũng làm như vậy cho video. – varun1505

1

điều này có vẻ giống như một lỗi rất ngu ngốc bên trong chế độ xem web. Một cách giải quyết hiện tại là "mã hóa" âm thanh dưới dạng tệp mp4 và sau đó liên kết nó qua thẻ video.

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

Điều này sẽ hiển thị hình chữ nhật màu đen (không có video) và cả các điều khiển bên trong. Đó là bởi đến nay không phải là giải pháp tốt nhất nhưng dễ nhất. Bạn có thể sử dụng Miro Video Converter trên Mac và Windows để tạo ra một mp4 như vậy.

Chúc may mắn :)