Android 播放视频的方法+播放测试地址 http

1
在请求网络时 要记得设置权限
调用系统播放器

Uri uri = 
Uri.parse(Environment.getExternalStorageDirectory().getPath()+"/Test_Movie.m4v");   
    //调用系统自带的播放器  
        Intent intent = new Intent(Intent.ACTION_VIEW);  
        Log.v("URI:::::::::", uri.toString());  
        intent.setDataAndType(uri, "file://video/mp4");  
        startActivity(intent);  

2
MediaController+VideoView
VideoView继承了SurfaceView同时实现了MediaPlayerControl接口,MediaController则是安卓封装的辅助控制器,带有暂停,播放,停止,进度条等控件。通过VideoView+MediaController可以很轻松的实现视频播放、停止、快进、快退等功能。

public class VideoViewTestActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video_view_test);
        VideoView videoView = (VideoView)findViewById(R.id.videoView);
 
	    //加载指定的视频文件
        String path = Environment.getExternalStorageDirectory().getPath()+"/20180730.mp4";
        videoView.setVideoPath(path);
 
        //创建MediaController对象
        MediaController mediaController = new MediaController(this);
 
	    //VideoView与MediaController建立关联
        videoView.setMediaController(mediaController);
 
	    //让VideoView获取焦点
        videoView.requestFocus();
 
    }
}

3
MediaPlayer+SurfaceView+自定义控制器
创建MediaPlayer对象,并让它加载指定的视频文件。可以是应用的资源文件、本地文件路径、或者URL。
在界面布局文件中定义SurfaceView组件,并为SurfaceView的SurfaceHolder添加Callback监听器。
调用MediaPlayer对象的setDisplay(SurfaceHolder sh)将所播放的视频图像输出到指定的SurfaceView组件。
调用MediaPlayer对象的prepareAsync()或prepare()方法装载流媒体文件
调用MediaPlayer对象的start()、stop()和pause()方法来控制视频的播放。
4
webview网络播放视频

webView = (WebView) this.findViewById(R.id.webView1);
  // 设置加载进来的页面自适应手机屏幕
  WebSettings settings = webView.getSettings();
  settings.setUseWideViewPort(true);
  settings.setLoadWithOverviewMode(true);
 webView.loadUrl("http://www.baidu.com");
 }

也可以使用VideoView 组件直接播放视频,但是效果不怎么样,容易卡顿,不能完整的适应于屏幕

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video);
        init();
        initVideoView();
    }

    private void initVideoView() {
        videoView.setVideoPath("http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8");
    }

    private void init() {
        videoView = (VideoView) findViewById(R.id.videoView);
        start = (Button) findViewById(R.id.start);
        pause = (Button) findViewById(R.id.pause);
        start.setOnClickListener(this);
        pause.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.start:
                if (!videoView.isPlaying()) {
                    videoView.start();
                }
                break;
            case R.id.pause:
                if (videoView.isPlaying()) {
                    videoView.pause();
                }
                break;
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (videoView != null) {
            videoView.suspend();
        }
    }

附上央视直播地址方便测试
香港卫视:http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8
CCTV1高清:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8
CCTV3高清:http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8
CCTV5高清:http://ivi.bupt.edu.cn/hls/cctv5hd.m3u8
CCTV5+高清:http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8
CCTV6高清:http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8

https://blog.csdn.net/Gents_hu/article/details/89855883

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值