0

基本上,当我在 webview 中显示 .gif 时,我正在设置一个 VideoView 来播放音乐(比 MediaPlayer 更多的功能)。我不确定我是否需要多个线程或其他东西,但是每当我尝试同时运行这两个线程时,它要么崩溃,要么不播放音乐。是不是因为我的“内容视图”设置为 Web 视图,所以我无法访问 main.xml 上的对象(如视频视图)?

代码:setContentView(R.layout.main);

    musicPlayer = (VideoView)findViewById(R.id.player);


   //run gif
    view = new GifWebView(this, "file:///android_res/raw/kk.gif");
    setContentView(view);



  //start player

    musicPlayer.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + musicList[0]));
    musicCounter =0;

    musicPlayer.setOnCompletionListener(TrackRepeater);
    musicPlayer.requestFocus();
    musicPlayer.start();

如果我不明显将上下文更改为 WebView,则播放器可以工作,不知道在这里做什么。干杯。

4

1 回答 1

1

请详细说明您使用 VideoView 播放音乐的原因。

比 MediaPlayer 更多的功能

VideoView 本质上是 SurfaceView 和 MediaPlayer 的包装器。VideoView 中的额外功能应该只是与在屏幕上播放视频相关的东西,您没有使用这些功能。您在 MediaPlayer 上使用它的具体原因是什么?

但我认为你是对的,通过改变你的活动内容你打破了 VideoView。您需要找到一种无需多次调用 setContentView() 的方法。这里有很多可能性有两种:

获取对 main.xml 布局的父视图的引用并在其上调用 .addView() 以添加 GifWebView,而不是使用它调用 setContentView()。

将 GifWebView 的声明添加到您的 xml 布局中,并以与拥有 VideoView 相同的方式获取对它的引用。

于 2012-05-10T23:55:18.187 回答