如何使用webView从SD播放本地FLV文件

时间:2014-04-11 07:00:31

标签: android webview flv

我想播放下载到SD卡的flv电影。我使用了topic中的示例,并且在创建活动之后,我只能看到LOADING标记而没有其他效果。这是我的活动代码:

public class VideoActivity extends SherlockFragmentActivity {

private static WebView webView;
private String fileName;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_video);
    this.getSupportActionBar().hide();
}

@Override
protected void onResume()
{
    this.initData();
    this.initVideo();
    super.onResume();
}

private void initData()
{
    webView = (WebView)findViewById(R.id.webview);
    this.fileName = getIntent().getExtras().getString("fileName");
}

@SuppressWarnings("deprecation")
@SuppressLint({ "SetJavaScriptEnabled", "SdCardPath" })
private void initVideo()
{              
    String htmlPre = "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"utf-8\"></head><body style='margin:0; pading:0; background-color: black;'>";  
    String htmlCode = 
            " <embed style='width:100%; height:100%'  src='http://www.platipus.nl/flvplayer/download/1.0/FLVPlayer.swf?fullscreen=true&video=@VIDEO@' " +
            "  autoplay='true' " +
            "  quality='high' bgcolor='#000000' " +
            "  name='VideoPlayer' align='middle'" + // width='640' height='480' 
            "  allowScriptAccess='*' allowFullScreen='true'" +
            "  type='application/x-shockwave-flash' " +
            "  pluginspage='http://www.macromedia.com/go/getflashplayer' />" +
            "";
    String htmlPost = "</body></html>";

    webView = (WebView) findViewById(R.id.webview);

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setAllowFileAccess(true);
    webView.getSettings().setPluginState(PluginState.ON);

    if (!Environment.getExternalStorageState().equals(
            Environment.MEDIA_MOUNTED)) {
        Tool.showInfo(this, "Brak karty SD");
    } else {

        htmlCode = htmlCode.replaceAll("@VIDEO@",  "file://"+Environment.getExternalStorageDirectory()+"/Folder/media/"+this.fileName);
        //webView.loadUrl(htmlCode);
        webView.loadDataWithBaseURL("file://"+Environment.getExternalStorageDirectory()+"/Folder/media/"+this.fileName,  htmlPre+htmlCode+htmlPost, "text/html", "UTF-8", null);  
    }
}

这里有什么问题? 有没有办法在离线模式下播放FLV文件???

0 个答案:

没有答案