视频播放的三种方式
来源:互联网 发布:mysql redis 特点区别 编辑:程序博客网 时间:2024/06/11 09:43
三种方式
1、intent
action:Intent.ACTION.VIEW
setDataAndType(视频地址,”video/*”) 视频地址为Uri类型
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse(Environment.getExternalStorageDirectory().getPath()+"//Movies//vivo.mp4");
intent.setDataAndType(data , "video/*");
startActivity(intent);
2、VideoView+MediaController
VideoView控件添加地址
实例化MediaController
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.VideoView;
public class MainActivity extends Activity implements OnClickListener {
private Button play;
private VideoView videoview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
play = (Button) findViewById(R.id.play);
videoview = (VideoView) findViewById(R.id.video_view);
play.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath()+"//Movies//vivo.mp4");
// TODO Auto-generated method stub
videoview.setVideoURI(uri);
MediaController MC = new MediaController(this);
videoview.setMediaController(MC);
MC.setAnchorView(videoview);
videoview.start();
}
}
3、SurfaceView+MediaPlayer
import java.io.IOException;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
private SurfaceView sv;
private MediaPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button play = (Button) findViewById(R.id.play);
sv = (SurfaceView) findViewById(R.id.sv);
Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath()+"//Movies//vivo.mp4");
player = MediaPlayer.create(this, uri);
play.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SurfaceHolder holder = sv.getHolder();
holder.addCallback(new Callback() {
@Override
public void surfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
player.setDisplay(holder);
player.start();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
});
}
}
- Android视频播放总结: 三种播放视频的方式
- 三种方式实现视频的播放
- Android三种播放视频的方式
- Android三种播放视频的方式
- Android三种播放视频的方式
- Android三种播放视频的方式
- Android三种播放视频的方式
- Android三种播放视频的方式
- Android三种播放视频的方式
- Android三种播放视频的方式
- Android三种播放视频的方式
- Android三种播放视频的方式
- Android 三种播放视频的方式
- Android三种播放视频的方式
- Android播放视频的三种方式
- Android三种播放视频的方式
- Android三种播放视频的方式
- Android三种播放视频的方式
- jenkins android自动化构建
- BZOJ 5011 [JXOI2016]颜色
- Java内存分析 其二
- JSON总结篇
- java web spring mvc 框架中使用mybatis报错的解决方案
- 视频播放的三种方式
- 【持续集成 Jenkins入门系列】02第二章 Jenkins安装与配置
- 基于Servlet的会话跟踪
- iOS Xcode9 不使用USB运行真机
- Vsphere日记01.ESXi5.5.install
- Jquery事件绑定函数:on和bind的区别
- 安装卸载windows wcf 服务
- PHP实现生成ascii字符图片
- MRPT学习之可视化