android播放swf文件
来源:互联网 发布:2017手机淘宝主图尺寸 编辑:程序博客网 时间:2024/05/16 10:05
虽然Adobe已经宣称不再支持android下的flash播放了,但是在HTML5没有热火起来之前还是有许多地方需要用到flash的,比如希望在android机子上使用以前flash制作的一些游戏或者教学动画。这里写了个demo使用android的WebView控件和Adobe的flash插件来播放本地的卡丁车的swf文件,在android机子上插上USB键盘就可以在android平台机子上玩了。
首先上个播放的效果图
代码架构
布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <WebView android:id="@+id/flashwebview" android:layout_width="fill_parent" android:layout_height="fill_parent" /></LinearLayout>
package com.example.flashplayer;import java.util.List;import android.net.Uri;import android.os.Bundle;import android.os.Handler;import android.app.Activity;import android.app.ProgressDialog;import android.content.Intent;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.graphics.Color;import android.view.Menu;import android.webkit.WebChromeClient;import android.webkit.WebSettings.PluginState;import android.webkit.WebView;import android.widget.ProgressBar;public class MainActivity extends Activity { private WebView mWebView; private Handler mHandler=new Handler(); private String mFlashFilename; private ProgressDialog mProgressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView=(WebView)findViewById(R.id.flashwebview); setTitle("flash播放器"); setTitleColor(Color.RED); mWebView.getSettings().setPluginsEnabled(true); mWebView.getSettings().setPluginState(PluginState.ON); Intent intent = getIntent(); String str = intent.getStringExtra("flashName"); if(str==null) mFlashFilename=new String("file:///android_asset/kaka.swf"); else mFlashFilename=str; try { Thread.sleep(500);// 主线程暂停下,否则容易白屏,原因未知 } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } mProgressDialog=ProgressDialog.show(this, "请稍等...", "加载flash中...", true); mWebView.setWebChromeClient(new WebChromeClient(){ @Override public void onProgressChanged(WebView view, int newProgress) { // TODO Auto-generated method stub super.onProgressChanged(view, newProgress); System.out.println("newProgress:"+String.valueOf(newProgress)); if(newProgress==100){ new Handler().postDelayed(new Runnable() { @Override public void run() { // TODO Auto-generated method stub mProgressDialog.dismiss(); } }, 500); } } }); if(checkinstallornotadobeflashapk()){ mWebView.loadUrl(mFlashFilename); }else{ installadobeapk(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } //退出时关闭flash播放 @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); mWebView.destroy(); this.finish(); System.gc(); } //按下Back按键时关闭flash播放 @Override public void onBackPressed() { // TODO Auto-generated method stub mWebView.destroy(); this.finish(); System.gc(); super.onBackPressed(); } //后台运行 @Override protected void onUserLeaveHint() { // TODO Auto-generated method stub mWebView.destroy(); this.finish(); System.gc(); super.onUserLeaveHint(); } //检查机子是否安装的有Adobe Flash相关APK private boolean checkinstallornotadobeflashapk() { PackageManager pm = getPackageManager(); List<PackageInfo> infoList = pm .getInstalledPackages(PackageManager.GET_SERVICES); for (PackageInfo info : infoList) { if ("com.adobe.flashplayer".equals(info.packageName)) { return true; } } return false; } //安装Adobe Flash APK private void installadobeapk() { mWebView.addJavascriptInterface(new AndroidBridge(), "android"); mWebView.loadUrl("file:///android_asset/go_market.html"); } private class AndroidBridge { public void goMarket() { mHandler.post(new Runnable() { public void run() { Intent installIntent = new Intent( "android.intent.action.VIEW"); installIntent.setData(Uri.parse("market://details?id=com.adobe.flashplayer")); startActivity(installIntent); } }); } }}
PS:需要在android机子上安装Adobe_Flash_Player_11.1.112.61.apk,android系统版本是4.0.3。
地址:https://pan.baidu.com/s/1eSCtDEa#list/path=%2F
转 : http://blog.csdn.net/yearafteryear/article/details/8959475#reply
阅读全文
0 0
- android播放swf文件
- android播放swf文件
- android webview播放swf文件
- android中播放本地的swf文件。
- Gnash 播放swf文件
- Jquery swf文件播放
- WebView播放Swf文件
- swf文件网页播放
- 网页播放.swf文件
- android 播放swf 格式文件
- android 播放swf视频
- 播放swf文件的代码
- 播放swf文件的代码
- ubuntu下播放 .swf文件
- Android播放swf类视频
- C#播放flash文件(swf文件)
- 搞定ubuntu下swf文件播放问题
- 如何自动播放下一个swf文件。
- 谷歌移动端深度学习框架TensorFlow Lite正式发布
- 24时区来源,CST,CET,UTC,DST,Unix时间戳概述、关系、转换
- Android8.0 WIFI ap Tethering 相关知识
- Android 文本视图TextView
- 洛谷P2045:方格取数加强版
- android播放swf文件
- mybactis多对一
- window 安装 sass compass 记录
- Idea环境下SpringBoot发布war
- HBase之get方法
- 如何改进脚本下载
- maven 配置 ueditor
- Windows下Python开发环境搭建及Pycharm安装
- MySQL 8小时了