android - 为什么 android 中的 VideoView 从 http 链接加载和播放视频需要花费太多时间?

标签 android video-streaming android-videoview

下面是我的代码:

  package com.example.videoplayer;
  import android.app.Activity;
  import android.app.ProgressDialog;
  import android.media.MediaPlayer;
  import android.os.Bundle;
  import android.util.Log;
  import android.view.Menu;
  import android.widget.MediaController;
  import android.widget.VideoView;

public class VideoPlayerActivity extends Activity {
    String TAG = "com.example.VideoPlayer";
    ProgressDialog progDailog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video_player);

        final VideoView videoView = (VideoView) findViewById(R.id.videoView1);
        videoView.setVideoPath("http://www.ebookfrenzy.com/android_book/movie.mp4");

        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(videoView);
        videoView.setMediaController(mediaController);

        videoView.setOnPreparedListener(new 
                MediaPlayer.OnPreparedListener()  {
            @Override
            public void onPrepared(MediaPlayer mp) {
                progDailog.dismiss();
                Log.i(TAG, "Duration = " + videoView.getDuration());
            }
        });

        videoView.start();
        progDailog = ProgressDialog.show(this, "Please wait ...", "Retrieving data ...", `enter code here`true);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.video_player, menu);
        return true;
    }

}

最佳答案

看看这个:

Play http videos in VideoView

这是我的代码:

public static void getVideoFromHttp(String urlPath) {

try {
// Start the MediaController
MediaController mediacontroller = new MediaController(mContext);
mediacontroller.setAnchorView(mVideoview);
// Get the URL from String VideoURL
Uri mVideo = Uri.parse(urlPath);
mVideoview.setMediaController(mediacontroller);
mVideoview.setVideoURI(mVideo);

} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();

}

mVideoview.requestFocus();
mVideoview.setOnPreparedListener(new OnPreparedListener() {
// Close the progress bar and play the video
public void onPrepared(MediaPlayer mp) {
    mVideoview.start();

}
});

mVideoview.setOnCompletionListener(new OnCompletionListener() {

public void onCompletion(MediaPlayer mp) {

}
});

}

谢谢

关于android - 为什么 android 中的 VideoView 从 http 链接加载和播放视频需要花费太多时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22344896/

相关文章:

android - YUV 到 h263/h264 压缩在 android 上流视频

ffmpeg - 如何在 h264 中流式传输视频?

安卓:我应该使用什么视频格式/编码来支持大多数安卓设备

android - 我想从互联网路径的视频 View 中获取视频大小(以 MB 为单位)

android - 如何使用 XML 在视频 View 的顶部添加 Admob 广告?

android - 无法让 Android 文档中的相机代码正常工作

android - onItemClicklistener();不适用于 android 中的自定义 listView

java - 无法解析方法“openFileOutput(java.lang.String,int)”

android - getLastKnownLocation 在 Android 中返回 0,0

java - 使用 mp4Parser java 库动态查找和剪切 mp4 http 流