How to Play local swf files in a webview
Am trying to play local .swf files (kept in asset or sdcard) inside webview. But am not getting any luck...Can anyone guide me the proper way??? I am able to play swf files via url....but getting difficulty in playing local file inside webview
swf2.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />
</head>
<body>
<object width="215" height="140">
<param name="movie" value="choudanse7us.swf">
<embed src="file:///mnt/sdcard/choudanse7us.swf"
width="215" height="140">
</embed>
</object>
</body>
</html>
below is the android code
package webView.video;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.webkit.WebView;
public class WebViewActivity extends Activity {
private WebView mWebView;
/** Called when the activity is first created. */
@Override
public void onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView(R.layout.main);
// html file with sample swf video in sdcard
//swf2.html points to swf in sdcard
mWebView = (WebView)findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginsEnabled(true);
mWebView.getSettings().setAllowFileAccess(true);
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
System.exit(4);
} else {
mWebView.loadUrl("file://" + Environment.getExternalStorageDirectory() + "/swf2.html");
}
}
}
For assets:
webView.loadUrl("file:///android_asset/YourFile.swf");
will play the file auto-scaled to the WebView size.
For the SD card, I expect something like this would work:
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
Log.d(TAG, "No SDCard");
} else {
webView.loadUrl("file://" + Environment.getExternalStorageDirectory() + "/YourPath/YourFile.swf");
}
(Using the READ_EXTERNAL_STORAGE permission, of course).
Edit: You may also need to set:
webView.getSettings().setAllowFileAccess(true);