2012-05-10 43 views
6

Tôi là người mới bắt đầu trong HTML và Java và tôi đang cố phát các tệp âm thanh trong một ứng dụng web đơn giản trên Android thông qua chế độ xem Web bằng HTML và Java. Tôi đã thành công trong việc làm việc này trên Android 4.0. Tuy nhiên nó sẽ không hoạt động trên 2.3.3 hoặc 2.2. Tôi đã thực hiện rất nhiều nghiên cứu và cho đến nay tất cả tôi đã tìm thấy là nó không được hỗ trợ. Bất cứ ai có thể xác nhận hoặc phủ nhận điều này và có thể chỉ cho tôi đi đúng hướng? Đây là những gì tôi đã làm việc trên 4.0 nhưng không có gì khác.Âm thanh Html trong 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); 

Làm cách nào để có cùng mã để hoạt động cho 2.3.3? Trong nghiên cứu của tôi, tôi đã gặp một người có thể phát tệp âm thanh bằng thẻ video, nhưng tôi không thể làm việc đó. Mọi kiến ​​thức được chia sẻ sẽ được đánh giá cao.

Trả lời

3

Đúng. Yếu tố âm thanh HTML5 đáng buồn chỉ được hỗ trợ từ Gingerbread.

Tôi đã đọc rằng thẻ âm thanh được hỗ trợ một cách khác nhau trong 2.2 & 2.3, nhưng vì một số lý do rất lạ, codec mp3 & ogg không phải là. Vì vậy, ngay cả khi nó được hỗ trợ là vô dụng trên điện thoại lên đến Android 2.3.

SOLUTION 1 Các thẻ video workaround (1,6-2,2) là như sau:

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

là một trong các bạn đã cố gắng?

GIẢI PHÁP 2 Một giải pháp khả thi khác (2.2+) là triển khai Trình phát JQuery với dự phòng Flash, như UbaPlayer.

SOLUTION 3 Cuối cùng .. có một workaround java bởi một người dùng khác của StackOverflow, ở đây:

..Hope này giúp :)

0

Tôi cũng có cùng một vấn đề, giải pháp làm việc cho tôi là .. sử dụng Mediaplayer (http://developer.android.com/reference/android/media/MediaPlayer.html) của Android để phát â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 ..

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.

1

Chỉ cần một cách nhanh chóng một lót cho bất kỳ du khách mới - hãy thử sử dụng sau bên trong webview thiết lập mã của bạn:

mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false); 

Nó sửa chữa thành công các vấn đề phát lại âm thanh!

0

Âm thanh thẻ chỉ hoạt động với tôi bằng cách sử dụng .loadUrl("https://webpage.html").

Với .loadData(htmlString, "text/html", null) đang hiển thị tin nhắn không được hỗ trợ.

Các vấn đề liên quan