位置: 编程技术 - 正文

Android--VideoPlay--视频播放器

编辑:rootadmin

推荐整理分享Android--VideoPlay--视频播放器,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

代码跟音乐播放器有大部分是相同的,各位可以将mp4格式的 视频文件放到sdcard卡中,在输入框中输入文件名即可,在 模拟器上运行请使用android2.0版本,据说其他版本的模拟器 不支持视频播放,如有错误之处请大家指出

java代码如下:

[html] view plaincopy package cn.mrzhu;

import java.io.File; import android.app.Activity; import android.media.MediaPlayer; import android.media.MediaPlayer.OnPreparedListener; import android.os.Bundle; import android.os.Environment; import android.view.SurfaceHolder; import android.view.SurfaceHolder.Callback; import android.view.SurfaceView; import android.view.View; import android.widget.EditText; import android.widget.Toast;

public class VideoPlayDemoActivity extends Activity { private EditText nameText; private String path;//文件路径 private MediaPlayer mediaPlayer;//media对象 private SurfaceView surfaceView; private boolean pause;//暂停标记 private int position;//播放的进度 /* Called when the activity is first created. / @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);

nameText = (EditText)findViewById(R.id.filename); surfaceView = (SurfaceView)findViewById(R.id.surfaceview);

//把输送给surfaceview的视频画面,直接显示到屏幕上,不要维持它自身的缓冲区 surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); surfaceView.getHolder().setFixedSize(, );//设置视频播放窗口的大小 surfaceView.getHolder().setKeepScreenOn(true);//保持屏幕高亮 surfaceView.getHolder().addCallback(new SurfaceCallback()); mediaPlayer = new MediaPlayer();//实例化一个播放器对象 }

private final class SurfaceCallback implements Callback{

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

}

/* * 当surfaceView被创建时 */ public void surfaceCreated(SurfaceHolder holder) { if(position > 0 && path != null){ play(position); position = 0; } }

/* * 当surfaceView被销毁时 */

public void surfaceDestroyed(SurfaceHolder holder) { mediaPlayer.stop(); }

Android--VideoPlay--视频播放器

}

/* * 按钮事件,在main.xml中,每个按钮的click_on = mediaplay */ public void mediaplay(View v){ switch(v.getId()){

case R.id. String filename = nameText.getText().toString();//获取文件名 File file = new File(Environment.getExternalStorageDirectory(), filename); if(file.exists()){ path = file.getAbsolutePath(); play(0); }else{ //若路径不存在,弹出Toast提示 Toast.makeText(getApplicationContext(), R.string.filenoexsit, Toast.LENGTH_SHORT).show(); } break;

case R.id. if(mediaPlayer.isPlaying()){ mediaPlayer.pause(); pause = true; }else{ mediaPlayer.start(); pause = false; } break;

case R.id. if(mediaPlayer.isPlaying()){ mediaPlayer.seekTo(0); }else{ if(path != null){ play(0);//将播放进度置为0,恢复初始状态 } } break;

case R.id. if(mediaPlayer.isPlaying()){ mediaPlayer.stop(); } break; } }

private void play(int position) { try { mediaPlayer.reset(); mediaPlayer.setDataSource(path); mediaPlayer.setDisplay(surfaceView.getHolder()); mediaPlayer.prepare(); mediaPlayer.setOnPreparedListener(new PrepareListener(position)); } catch (Exception e) {

} }

private final class PrepareListener implements OnPreparedListener{ private int position;

public PrepareListener(int position) { super(); this.position = position; } public void onPrepared(MediaPlayer mp) { mediaPlayer.start();//播放视频 if(position > 0) mediaPlayer.seekTo(position); }

}

@Override protected void onDestroy() { mediaPlayer.release(); mediaPlayer = null; super.onDestroy(); } }

main.xml代码如下:

[html] view plaincopy

[置顶] android利用线程池高效实现异步任务 不管是开发android应用程序还是java应用程序,异步任务都是经常用到的,尤其是android本身做为线程不安全,只要稍微耗时的操作都要用到异步任务,而无论是j

vs 编译mosquitto win版本,开启websockets,实现消息推送 前言:因为之前没有怎么碰vs,只搞过cygwin,而cygwin上搞了好久都搞不定,以至于重新整理思路,这window上的版本应该怎么去编译。一直不知道怎么搞,

Android 编程下 Touch 事件的分发和消费机制 本文转自:

标签: Android--VideoPlay--视频播放器

本文链接地址:https://www.jiuchutong.com/biancheng/382252.html 转载请保留说明!

上一篇:Android Volley 框架的使用(一)(androidui框架)

下一篇:[置顶] android利用线程池高效实现异步任务([置顶]星陨计划)

  • 个人独资企业生活费用和经营费用混在一起的
  • 消费税入哪个科目
  • 注销库存股为什么股本减少
  • 用友软件80端口被占用解决方法
  • 分公司可以计提安全生产费吗
  • 母子公司的关联交易怎么看
  • 出口结汇必须要开票吗
  • 公司购买的打印机
  • 变更了公司名称以前的发票还可以抵扣吗
  • 收回已转销的坏账在借方还是贷方
  • 商超陈列费
  • 红字使用禁忌
  • 企业所得税公益性捐赠扣除标准
  • 2016 营改增 对建筑企业影响
  • 提取备用金现金流量
  • 原始凭证审核的内容
  • 奖励积分换取商品会计处理
  • 公司不给发公司
  • 小微企业免税销售额一栏怎么填
  • 差旅费报销单填写模板
  • 政府性基金预算收入包括
  • 代扣税款手续费管理办法
  • 收到利息收入会计分录怎么写
  • 小额纳税人增值税专用发票税率1%
  • 返利是冲减收入吗
  • php的工作流程
  • 公司缴纳的公积金什么时候到账
  • window php安装
  • 酒店的押金怎么做账
  • 支付报刊杂志费
  • 竞业限制违反了怎么办
  • 什么叫股权溢价之谜?
  • 小规模纳税人免税额度是多少
  • php function函数的用法
  • node js 安装
  • tensorflow theano
  • 怎么修改手机的地理位置
  • 上一年的运费发票怎么开
  • 帝国cms使用手册
  • 劳务公司承接项目的方案怎么写
  • php网站修改
  • 发票已经勾选却统计不出来
  • 车辆车船税收费标准
  • 其他收益属于什么类科目
  • 计提折旧的固定资产平均总值怎么算
  • 如何计算保费合同未规定加成比例
  • 应该是先付款还是先开发票
  • 企业在建工程领用自产应税消费品成本为10000元
  • 生产成本制造费用结转
  • 外国专家经费管理办法
  • 电商行业的采购
  • 企业安全生产费用可由企业用于购置
  • 建安类资质指什么资质
  • 关于财务报销的法律
  • 工资达不到5000个人所得税
  • 规范专户资金使用
  • MySQL主从同步原理介绍
  • 卸载微信后重新登录微信怎么恢复之前的数据
  • ubuntu安装哪个版本
  • 雨林木风Windows10
  • linux中磁盘分区
  • win10预览版和正式版区别
  • win8怎么禁止开机启动项
  • win1021h2版本千万别更新
  • windows7 cpu使用率高
  • windows8运行窗口怎么打开
  • 协同编程工具
  • 如何用vs默认打开unity脚本
  • dos常用命令与批处理文件
  • 在js里写html
  • node 调用c
  • javascript基础笔记
  • 税收征管法规定税务机关在税款征收中可以采取哪些措施
  • 浙江省工会经费减免最新政策2019年
  • 打印格式不对怎么设置A4
  • 北京国税发票查询真伪查询
  • 河南三门峡税务社保缴费电话
  • 现行会计法律法规汇编2022版
  • 税务2021年认真落实各项工作
  • 怎样在网上申报税务流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设