位置: 编程技术 - 正文

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

  • 本期实际抵减税额合计0.00不等于
  • 合伙企业投资收益做账
  • 购买材料,收回会计分录
  • 什么是明细分类账簿
  • 公司贷款利息怎么做分录
  • 连续亏损3年
  • 固定资产清理的金额怎么算
  • 生产经营所得的税率表
  • 广告公司可以开劳务费吗
  • 运输业务增值税
  • 增值税建筑业税率几次调整
  • 一般存款账户的主要用途
  • 小规模纳税人开普票要交税吗
  • 上年度没有计提企业所得税
  • 购买空调的报销单怎么写
  • 银行转账短信提醒还要收费吗
  • 认缴制下收到股东转入的钱怎么入账
  • 房地产分期开发的标准
  • 无形资产的加计扣除为什么不影响应纳税所得额
  • 交通补贴可以抵扣个税吗
  • 居民纳税人具体包括哪些?
  • 广告业务增值税
  • 劳务发票需要身份证原件吗
  • 公司年末补缴企业所得税需要提供什么资料?
  • 母公司向全资子公司增资
  • 预提怎么写会计分录
  • 物业公司的跨期收费如何确认收入?
  • 借其他应收贷应付
  • 一般纳税人房产税是按季还是按月申报
  • ah股溢价是什么意思 搬砖
  • 债务转为资本什么意思
  • 付出去的款项退回怎么做账
  • 非金融企业之间的借款合同要交印花税吗
  • 管理费用和财务费用在资产负债表怎么填
  • 上月暂估成本高了这个月怎么做账
  • 公司账户上的钱怎么转到老板账户上
  • 回迁房?
  • 外购商誉是资产吗
  • 在海里的章鱼
  • 合规检查中检查不了的设备
  • 季度盈利弥补亏损利润表
  • 应交增值税的账务处理有哪两种
  • 第二季度企业所得税会减第一季度吗
  • 公司购进软件的账务处理
  • mysql更新视图的方式
  • 织梦如何采集文章
  • 短期借款属于经营活动还是筹资活动
  • 核定征收可以不用申报吗
  • 年末计提哪些科目
  • 融资租赁缴纳什么税
  • 缴纳增值税账务
  • 实缴增值税比计提增值税少怎么做账务处理
  • 企业变卖汽车收入要交增值税吗
  • 发工资摘要没写工资
  • 小企业会计准则和一般企业会计准则的区别
  • 包装物属于周转材料还是低值易耗品
  • 发票隔年还能做账吗
  • 外汇申报填写什么最简单
  • 成本会计做什么工作内容
  • 记账报税属于会计什么职位
  • 商业企业内部物流的主要作用是保证商品的正常销售
  • 怎么怎么恢复
  • win7怎么设置桌面位置
  • linux系统中用户账户有哪些分类
  • 虚拟机增加磁盘选择物理磁盘分区
  • bios 设置
  • windows10mobile官网
  • xp系统怎么添加ip地址
  • win8 boot manager
  • linux groupmod命令参数及用法详解(linux修改组信息命令)
  • win7系统的excel在哪里
  • unity总结
  • shift妙用之解决shell编程中的入参问题
  • jquery.upload.js
  • javascript怎么学
  • android知识点大全
  • python flask框架 web服务器
  • 北京市网上税务局(自然人版)
  • 我的电脑为什么没有微软商店
  • 税控盘如何分配发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设