位置: 编程技术 - 正文

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

  • 企业当期应纳增值税
  • 未达起征点的增值税要交企业所得税吗
  • 个人接私活需要开票,可以让别的公司帮忙开票吗?
  • 什么叫差额征税呢
  • 消防管理费用收取标准
  • 资产超过5000万的企业所得税税率
  • 终止经营净利润计算公式
  • 长期股权投资是金融资产还是非金融资产
  • 结转本月发生的费用
  • 直接收到货款也要走应收账款吗
  • 小规模开票给一般纳税人避税合法吗
  • 仓库缺货怎么处理
  • 房租费可以摊销吗
  • 没收逾期未退包装物押金收益,应计入( )科目
  • 贴现法付息什么意思
  • 员工奖金分两次发怎么交税?
  • 单位处置车辆账务处理
  • 劳务公司差额开票的方式有哪些
  • 工资哪些扣款应该扣税
  • 维护费开的普票能全额抵扣吗?
  • 金税盘使用说明
  • 中央财政补贴政策
  • 企业银行密码器
  • 专票什么公司才能开
  • 上月暂估本月怎么冲销
  • 商品出口消费税计算方法
  • 售后需要品控吗
  • 购销合同没写签订日期违法吗
  • 计提的存货跌价准备
  • cmd常用命令大全图解
  • 企业筹资付给第三方账户
  • 工业企业生产成本核算表
  • 无法登陆wifi怎么登陆路由器
  • php mb_convert_encoding
  • 公司名称变更重新刻章
  • php 数据库操作
  • 解决的英文
  • 企业所得税季度预缴是什么意思
  • 企业所得税按季还是按年
  • 携程首页
  • 36号文45条
  • 微信小程序设计规范(官方)文档
  • 一个用于表示特定的web页的标识符url称为
  • css选择器nth
  • rm 删除某个文件
  • php服务器地址怎么填
  • c语言中数组越界
  • 存量资金上缴财政款 预算会计
  • 事业单位政府拨款的会计分录
  • mysql中触发器的创建有多个执行语句
  • 房产税从租和从价哪个税金高
  • 国税局领发票是哪些项目需要收取费用
  • sql语句重复
  • 欠款在公司注销怎么处理
  • 小企业会计准则跨年红冲
  • 造价咨询费计入固定资产吗
  • 长期挂账应付款的处理方法
  • 存量资金上缴财政怎么做账
  • 银行贷款利息支出税前扣除标准
  • 合作社开具免税发票流程
  • 明细分类账有哪三种
  • 成本与费用的区别联系
  • MySQL5.6下windows msi安装详细介绍
  • 获得sql数据库信息的方法
  • MySQL索引背后的数据结构及算法原理
  • win8.1资源管理器频繁假死
  • win8系统连接网络
  • linux getuid
  • opengl文档窗口是什么
  • Android游戏开发教程
  • unity 3d教程
  • 简述javascript
  • [置顶] [Android Studio 权威教程]AS添加第三方库的6种方式(Jar,module,so等)
  • python的web框架
  • 融资租赁利息是哪个科目
  • 代收国税地税收入
  • 印刷行业费用标准
  • 遵从和尊重
  • 开票系统ukey抄报税
  • 企业将持有的交易性金融资产售出,实际收到出售价款
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设