2012-11-09 10 views
5

Pracuję nad aplikacją na Androida, w której chcę dynamicznie odtwarzać wideo z adresu URL. Dlatego umieszczam widok sieciowy w układzie i wyświetlam plik HTML zawierający kod jwplayer, ale nie ma tam jwplayer'a, a widok internetowy pokazuje tylko "Ładowanie odtwarzacza ....". Nie mogę zrozumieć, gdzie jest problem.Nie można użyć jwplayer w aplikacji na Androida

My VideoView code tutaj

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

Niektóre kod będzie być docenionym. – meh

+0

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

+0

Powinieneś przekroczyć kod tutaj, zamiast linkować do zewnętrznych stron. – Qben

Odpowiedz

2

U może odnosić się poniżej kodu i mają nadzieję, że ten przykład it..i pomocy u, aby wyjść z tego ..

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; 
     } 
    }); 
Powiązane problemy