位置: 编程技术 - 正文

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利用线程池高效实现异步任务([置顶]星陨计划)

  • 小规模纳税人认定的最新标准2022
  • 未认证发票有时间限制吗
  • 坏账准备怎么做T型账户
  • 建筑劳务公司税负率多少才合适
  • 上年多做收入今年可以直接冲减吗
  • 公司股东和自然人股东可否代持股权
  • 什么样的个体需要纳税
  • 商业企业购入商品会计分录
  • 支付资金占用费怎么记账进项税
  • 已认证的红字发票怎么退
  • 诉讼财产保全保险费能否主张
  • 公户收到的款都要确定收入吗
  • 年末企业盈利有什么影响
  • 工业设备基础
  • 进口货物要交消费税吗
  • 混合销售如何做会计分录
  • 当期损益包括营业外收支吗
  • 序列号不可用怎么办
  • 预交增值税抵减申报
  • 计提工资附加费啥意思
  • 应收利息和应计利息有什么不同
  • 火狐浏览器下载安装
  • 个贷系统平帐专户A贷
  • 资本公积主要包括哪些内容
  • debian10.9安装教程
  • windows10设备如何打开蓝牙
  • 因质量问题被扣的货款销售方怎么做账
  • ISBMgr.exe - ISBMgr是什么进程 有什么作用
  • php提高性能
  • 房产税应计入哪个会计科目
  • 研发费用加计扣除政策指引2.0
  • vue antdesign
  • 建信融通e信通贴现几天到账
  • 过来人告诉你:女人最珍贵的三种东西,舍得给你说明爱你
  • 倾向得分匹配后怎么进行回归
  • python设置断点
  • vue大型项目撑得住吗
  • okhttp源码
  • 引导式申报带出来的开票额与金税盘显示的不一致
  • 社会保险基数怎么办
  • 小规模纳税人养老保险怎么交
  • 企业的借款费用怎么入账
  • mysql 索引类型以及使用场景
  • java集合详解以及底层实现
  • db2udb
  • mysql 扩展
  • 什么叫现金流量表举例说明
  • sqlserver定时执行sql
  • 外来原始凭证包括一次凭证,累计凭证和汇总凭证
  • 账簿包括哪些基本内容
  • 交耕地占用税如何交
  • 辞退补偿的账务处理
  • 销售退回怎么办
  • 企业运费如何开票
  • 电子退库收入怎么入账
  • 支付资金占用费的承诺函怎么写
  • 法院去单位直接扣划单位薪酬
  • 结算本月应付职工工资,其中生产工人工资8000元
  • 开了红字发票申请还要做进项税转出吗?
  • 如何使用费用分割单
  • 公司被冻结
  • 纳税人可以委托税务人员办理纳税申报吗
  • 费用报销银行转账用途怎么写
  • sql server 2000安装好打开不显示名称和服务原因
  • 访问和更改关系的区别
  • 快启动u盘pe怎么安装系统详细图文教程
  • 手动去除扁桃体结石教程
  • ubuntu系统升级命令
  • win7系统玩英雄联盟黑屏怎么办
  • 2020win7免费升级win10教程
  • opengl oes纹理
  • javascript数据结构与算法第三版
  • 批处理命令实例
  • cd跳转不到目录
  • shell脚本windows
  • 什么绑定什么服务
  • js遍历foreach
  • 开票员怎么登录电子税务局进行开票验证
  • 云南省国家税务局网上办税服务厅
  • 中国税务报订阅电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设