问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

安卓手机怎么播放把插

发布网友 发布时间:2023-06-01 00:06

我来回答

1个回答

热心网友 时间:2024-11-26 22:34

本例将介绍几种视频的播放方式,

一:调用系统默认播放器播放视频;

二:SurfaceView + MediaPlayer;

三:VideoView + MediaController;

四:HTML5 + WebView;

五:第三方包,Vitamio。

1,调用系统默认的播放器,采用Intent意图的方式调取系统默认的视频播放器:

//调用系统自带的播放器

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setDataAndType(uri, "video/*");

startActivity(intent);

2,使用SurfaceView + MediaPlayer 绘制视频播放:

首先,初始化SurfaceView,并设置Callback,Callback是SurfaceHolder的回掉函数,可以帮助控制SurfaceHolder

SurfaceView sv = (SurfaceView) findViewById(R.id.surface_view);

SurfaceHolder holder = sv.getHolder();

holder.addCallback(new MyCallback());

为了可以播放视频或者使用Camera预览,我们需要指定其Buffer类型 ,设置风格

holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

ViewGroup.LayoutParams lp = (ViewGroup.LayoutParams) sv.getLayoutParams();

lp.height = 640;

lp.width =640;

Log.d("tag","ViewGroup is created succese");

sv.setLayoutParams(lp);

其次,自定义callback,使其实现SurfaceHolder.Callback,用以监听SurfaceHolder的周期;

class MyCallback implements SurfaceHolder.Callback {

MediaPlayer player = new MediaPlayer();

@Override

public void surfaceCreated(SurfaceHolder holder) {

try {

player.setDisplay(holder);

player.setDataSource(Environment.getExternalStorageDirectory().getPath()+"/Download/video_480x360.mp4");

player.prepare();

Log.d("tag","Player is prepare");

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

player.start();

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

if(player.isPlaying()){

player.stop();

}

player.release();

Log.d("tag","Player is release");

}

}

3,使用VideoView + MediaController 播放

VideoView vv = (VideoView) findViewById(R.id.videoView);

MediaController mc=new MediaController(this);

vv.setMediaController(mc);

vv.setVideoURI(Uri.parse("http://172.17.29.120/localuser/ljy/video/hetang.3gp"));

vv.start();

vv.requestFocus();

4,使用HTML5 + WebView 播放

首先使用H5创建一个.html文件,使用video标签,把该.html放入到assets目录下

视频加载失败

autoplay:自动播放

controls:控制器

src:视频地址

其次,在Android布局中创建一个布局,添加WebView控件:

最后在java代码中

wv.loadUrl("file:///android_asset/index.html");

即可实现播放,可进行JS交互。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
whirlpool如何制热 如何查被录取到的专业 怎样查被录取的专业 录取后怎样查询录取的专业 录取专业怎么查 已被录取怎么查专业 ghs网络语什么意思_ghs网络语意思出处含义介绍 纸箱企业管理软件 ghs什么意思网络(ghs什么意思网络用语) 《喜羊羊与灰太狼》大结局 三角形相关问题 3至六岁幼儿应该怎么教育呢? 数学三角形问题!! 给老婆的生日祝福语暖心通用八十二句 维持会会长是什么级别 谁是雪豹中的原型?? 周继先有原型吗? 梦见海洋馆预示着什么?有什么特殊意思? 安琪拉怎么情况下变金牌打野 山东专升本退役士兵免试政策 山东省退役士兵专升本政策 2022年山东统招专升本退役大学生士兵考生报名流程? b货翡翠是怎么做的b货翡翠怎么做 心系天下W2013的规格参数 QQ炫舞魔法屋 怎么用啊 我怎么不会啊 《问道》手游山门考验之明智任务攻略 极限竞速地平线4终极考验怎么完成 新80级FB盟主的考验完全攻略降龙之剑 道天录玉鼎上仙的考验怎么完成 魔兽世界重新考验任务怎么做 重新考验任务全流程攻略 汽车安全气囊电阻是多少 气囊短接需要多少欧电阻 汽车SRS气囊电阻应为多少? 气囊线束阻值是多少 安全气囊点火线圈的电阻值一般是多少? 给附气囊加个电阻需要多大的 上脸给别人画眉毛技巧画眉毛有什么技巧 stm8l单片机程序 不能下载到板子里面? 车厘子和菠菜能一起吃吗 车厘子能和牛奶一起吃吗 车子堵了别人车位,如何快速挪车? 做美缝的步骤和教程 为什么迪士尼里有花木兰 迪士尼里有花木兰的原因 从一到十的过年祝福语 新年祝福语范例 开拓者正义之怒良辰吉日宴嘉宾流程攻略岱兰招募方法 C12取7怎么计算? 求C12函数公式。高人指导下 求C12函数公式 太阳辐射 与电脑辐射的 区别? 太阳光跟电脑哪个辐射大 荣耀手环6绑定支付宝后可以刷公交支付吗?