cheli_71 2013-09-26 06:40 采纳率: 0%
浏览 972

程序启动时播放 .swf 文件

我想在用户点击程序图标时,程序开启时播放 .swf 文件,然后我想开启程序的 activity。怎么实现?
我使用的代码如下:

private static int SPLASH_TIME_OUT = 3000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.startup);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                // This method will be executed once the timer is over
                // Start your app main activity
                String localUrl ="file:///android_asset/Kiss-o-meter.swf";

                WebView wv=(WebView) findViewById(R.id.webview);
                wv.getSettings().setPluginState(PluginState.ON);
                wv.loadUrl(localUrl);       

                Intent yes_krao = new Intent(Splash_Screen.this, KissingMeter.class);
                startActivity(yes_krao);
                finish();
            }
        }, SPLASH_TIME_OUT);
    }  

xml 文件:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
              android:orientation="vertical" 
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent"> 

     <WebView android:id="@+id/webview" 
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent"/>

</LinearLayout> 

上面的代码有什么错误啊?好像没有执行, setPluginsEnabled(true); 也没有在eclipse 中运行。

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-24 12:59
    关注

    该回答引用ChatGPT

    根据你的描述和代码,你的应用程序在启动时尝试加载本地的 .swf 文件并将其显示在一个 WebView 中,同时启动另一个 Activity。


    但是,根据 Android 官方文档,Android 4.4 及以后的版本不再支持 Adobe Flash Player,因此你不能使用 WebView 加载 .swf 文件。相反,你应该考虑使用其他格式的媒体文件,如 MP4、WebM 等。


    另外,在你的代码中,setPluginState 方法已经被弃用。正确的做法是调用 getSettings().setPluginState(WebSettings.PluginState.ON) 来启用插件。


    最后,你需要确保在 AndroidManifest.xml 文件中正确地声明了 KissingMeter Activity。


    以下是更新后的示例代码:

    private static int SPLASH_TIME_OUT = 3000;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.startup);
    
        WebView wv = findViewById(R.id.webview);
        wv.getSettings().setPluginState(WebSettings.PluginState.ON);
        wv.getSettings().setJavaScriptEnabled(true);
        wv.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                // 页面加载完成后启动 Activity
                Intent yes_krao = new Intent(Splash_Screen.this, KissingMeter.class);
                startActivity(yes_krao);
                finish();
            }
        });
        wv.loadUrl("file:///android_asset/your_video.mp4");
    }
    

    请注意,我在代码中假设你已经将一个 MP4 视频文件命名为 your_video.mp4 并将其放置在应用程序的 assets 文件夹中。


    此外,我还为 WebView 设置了一个 WebViewClient,当页面加载完成后会自动启动 KissingMeter Activity。这样可以确保页面加载完成后再启动 Activity,以避免可能的错误。


    最后,请确保你的 AndroidManifest.xml 文件中正确声明了 KissingMeter Activity,类似于以下示例:

    <activity android:name=".KissingMeter">
        <!-- 可选:声明该 Activity 为启动 Activity -->
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决