位置: 编程技术 - 正文

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
  • 收到投资者购买股票的资金
  • 工企业用地土地使用税怎么征收?
  • 应付职工薪酬要结转吗
  • 计提本月应缴纳增值税
  • 印花税必须每个月零申报吗
  • 营改增后企业所得税
  • 汽车配件的税收编码是多少
  • 公司贷款评估费的做账
  • 外资企业注销需要商务局备案吗
  • 1697510003
  • 预付货款样品费怎么入账
  • won11更新
  • 收益相关的政府补助分录
  • linux的用法
  • macOS 10.13允许任何来源没有了怎么办?macOS 10.13允许任何来源没了开启步骤
  • php require的用法
  • win10回滚系统
  • 高德地图api获取当前经纬度的城市地图
  • 存货的采购成本包括
  • coco2017数据集介绍
  • php中定义常量的函数是什么
  • 时点数和时期数 订单量 库存量点击量
  • php曲线图模板
  • 芝麻信用app
  • ecshop功能
  • 增值税专用发票有几联?
  • 短期借款的会计科目
  • 报税营业成本包括什么
  • 纳统全称
  • 四联收据每一联用途
  • 企业低值易耗品降成本措施
  • 办公装修费用多少
  • 单位食堂账目
  • 企业所得税季报是填累计数吗
  • 公司前期装修费属于开办费吗
  • 自建不动产领用原材料增值税进项
  • 出差人员的住宿费计入什么科目
  • 取得无形资产时增值税进项税额的处理
  • 固定资产不动产有哪些
  • 溢价交易和折价交易
  • 以前年度房租付了没计提
  • 退货收到红字发票怎么办
  • 不得抵扣的增值税计入
  • 工程承建方给予什么赔偿
  • 公司运营成本如何计算
  • 其他应付款是什么科目代码
  • 商品销售折让怎么计算
  • 减少注册资本要公示多少天
  • 如何系统还原xp
  • 如何修改windows注册表
  • Win7怎么把桌面文件迁移到D盘中
  • win7如何创建文件夹
  • winxp开机画面自动重启
  • linux里cat命令
  • centos8拨号上网
  • centosgui
  • scanexplicit.exe - scanexplicit是什么进程 作用是什么
  • win8双系统安装教程
  • linux修改时间和日期的方法
  • linux搭建chia
  • 场景切换方式
  • linux中执行.sh文件
  • jquery使用教程
  • python编程求一个数的平方
  • javascript怎么学
  • Android开发中的几种管理机制的使用场景是什么
  • 税务安装软件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设