2012-11-09 20 views
5

Tôi đang phát triển một ứng dụng Android nơi tôi muốn phát một số video động từ một URL. Vì vậy, tôi đặt chế độ xem web trong bố cục và xem tệp html chứa mã jwplayer nhưng jwplayer không có ở đó và chế độ xem web chỉ hiển thị "Đang tải trình phát ....". Tôi không thể hiểu được vấn đề ở đâu.Không thể sử dụng jwplayer trong ứng dụng Android

My VideoView code đây

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Window; 
import android.webkit.WebChromeClient; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Toast; 

public class VideoActivity extends Activity { 
/** Called when the activity is first created. */ 
WebView sampleWeb; 
String htmlText; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.web); 

    sampleWeb=(WebView)findViewById(R.id.webView); 
    WebSettings webSettings=sampleWeb.getSettings(); 

    sampleWeb.getSettings().setJavaScriptEnabled(true); 
    sampleWeb.getSettings().setBuiltInZoomControls(false); 

    sampleWeb.getSettings().setLoadsImagesAutomatically(true); 

    sampleWeb.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    sampleWeb.getSettings().setAllowFileAccess(true); 
    sampleWeb.getSettings().setPluginsEnabled(true); 
    sampleWeb.setWebViewClient(new WebViewClient()); 


    // sampleWeb.loadUrl("m.google.com"); 
    htmlText="<!DOCTYPE html> "; 
    htmlText+="<html lang='en'>"; 
    htmlText+="<head><meta charset='utf-8'>"; 

    htmlText+="</head>"; 
    htmlText+="<body style='margin:0; pading:0;background-color: #ffffff;'>"; 
    htmlText+="<div style='color:black'>Loading the player ...</div>"; 
    htmlText+="<script type='text/javascript' src='http://shourav.com/android/jwplayer.min.js'></script>"; 

    htmlText+="<div id='mediaspace'>This text will be replaced</div>"; 

    htmlText+="<script type='text/javascript'>"; 
    htmlText+="jwplayer('mediaspace').setup({"; 
    htmlText+="'flashplayer': 'http://developer.longtailvideo.com/svn/trunk/fl5/player.swf',"; 
    htmlText+="'file': 'http://shourav.com/android/android.MP4',"; 
    // htmlText+="'streamer': 'rtmp://b27i9s9t3.rtmphost.com/AndroidMedia',"; 
    htmlText+="'controlbar': 'bottom',"; 
    htmlText+="'width': '200',"; 
    htmlText+="'height': '150'"; 
    htmlText+="});"; 
    htmlText+="</script>"; 

    htmlText+="</body>"; 
    sampleWeb.loadData(htmlText, "text/html", "utf-8"); 

} 

}

+0

Một số mã sẽ được đánh giá cao. – meh

+0

http://pastebin.com/874jHFLG – shourav

+0

Bạn nên dán mã ở đây thay vì liên kết đến các trang web bên ngoài. – Qben

Trả lời

2

U có thể tham khảo dưới đây mã và làm it..i hy vọng ví dụ này giúp u để ra khỏi đây ..

private void createVideoHtml(File flvDirectory, File htmlFile, String videofilename) 
{ 
    String htmlPre = "<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></head><body style='margin:0; padding:0;'>"; 
    String htmlCode = 
      "<script type='text/javascript' src='"+ flvDirectory.getAbsolutePath() + "/jwplayer.js'></script>" + 
      "<div id='mediaspace'>EZ Stream TV FLV Player</div>" + 
      "<script type='text/javascript'>" + 
      "jwplayer('mediaspace').setup({" + 
      "'flashplayer': '"+ flvDirectory.getAbsolutePath() + "/player.swf', 'file': '" + videofilename + "', 'backcolor': 'FFFFFF', 'frontcolor': '000000', 'lightcolor': '000000'," + 
      "'screencolor': '000000', 'volume': '100', 'autostart': 'true', 'mute': 'false', 'quality': 'false', 'controlbar': 'bottom', 'width': '100%', 'height': '100%'," + 
      "events: { " + 
      "onComplete: function() { alert('COMPLETED');}" + 
      "}});" + 
      "</script>"; 
    String htmlPost = "</body></html>"; 
    String finalHTML = htmlPre + htmlCode + htmlPost; 

    try { 
     FileWriter f = new FileWriter(htmlFile); 
     PrintWriter p = new PrintWriter(f); 
     p.print(finalHTML); 
     p.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

webView = (WebView)findViewById(R.id.web_player); 
    webView.getSettings().setBuiltInZoomControls(false); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setLoadsImagesAutomatically(true); 
    webView.getSettings().setPluginsEnabled(true); 
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    webView.getSettings().setAllowFileAccess(true); 
    webView.setInitialScale(60); 
    webView.setBackgroundColor(Color.BLACK); 
    getWindow().addFlags(128); 
    webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)"); 
    webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 

    webView.setWebChromeClient(new WebChromeClient() { 
     @Override 
     public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result) 
     { 
      Log.d(TAG, message); 
      new AlertDialog.Builder(view.getContext()).setMessage(message).setCancelable(true).show(); 
      result.confirm(); 
      return true; 
     } 
    });