为啥videoview这么慢?
Posted
技术标签:
【中文标题】为啥videoview这么慢?【英文标题】:Why is the videoview so slow?为什么videoview这么慢? 【发布时间】:2012-04-10 03:22:35 【问题描述】:我在我的应用程序中放置了一个视频视图,它工作正常,但是当您打开页面时,它需要很长时间才能加载/缓冲。
无论如何我可以解决这个问题。我的意思是这是一个 3 秒的视频。加载时间应该不会很长。对吧?
代码:
package jslsoftware.co.nr;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.VideoView;
import android.widget.MediaController;
public class videoview1 extends Activity
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.video1);
Uri vidFile = Uri.parse("http://jslserver1.yolasite.com/resources/3gp_videos/Animal.3gp");
VideoView videoView = (VideoView) findViewById(R.id.videoView1);
videoView.setVideoURI(vidFile);
videoView.setMediaController(new MediaController(this));
videoView.start();
谢谢
【问题讨论】:
【参考方案1】:与其直接放置代码为什么不子类化呢?
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap>
protected Bitmap doInBackground(String... urls)
return loadImageFromNetwork(urls[0]);
protected void onPostExecute(Bitmap result)
mImageView.setImageBitmap(result);
只需替换 doInBackground 方法中的内容即可。如果您在执行后有任何事情要做,请放在 onPostExecute 中。
【讨论】:
我阅读了那个链接,它在不让事情陷入困境的方式上很有意义。但是现在我对代码不是很好(刚开始)。您能否向我提供一些使用单独线程的代码,或者告诉我需要做什么才能将其安装到我的代码中。非常感谢您的帮助! 在您的代码中定义另一个类,并将您的视频通话置于 do 后台服务中。我将使用代码编辑我的答案。 videoView.setVideoURI(vidFile);必须在 UI 线程中完成。这是迄今为止最慢的调用。在 Google TV 上,单独调用可能会导致 UI 无响应.. :( 我不知道这个答案是否真的回答了这个问题。好像和我没关系问题是视频播放器内的缓冲区/加载速度非常慢。以上是关于为啥videoview这么慢?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Android 中的 VideoView 需要花费太多时间来加载和播放来自 http 链接的视频?
android 多个 videoView 问题,特定于 Galaxy Tab