ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:20.83KB ,
资源ID:9062946      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9062946.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(安卓视频播放器代码.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

安卓视频播放器代码.docx

1、安卓视频播放器代码Java代码部分:package .iotek;import java.io.IOException;import java.util.Random;import android.app.Activity;import android.content.Context;import android.content.pm.PackageManager.NameNotFoundException;import android.media.AudioManager;import android.media.MediaPlayer;import android.media.MediaP

2、layer.OnBufferingUpdateListener;import android.media.MediaPlayer.OnCompletionListener;import android.os.Bundle;import android.os.Handler;import android.view.GestureDetector.OnGestureListener;import android.view.Gravity;import android.view.MotionEvent;import android.view.SurfaceHolder;import android.

3、view.SurfaceView;import android.view.View;import android.view.Window;import android.view.WindowManager;import android.view.View.OnClickListener;import android.view.View.OnTouchListener;import android.widget.ImageButton;import android.widget.LinearLayout;import android.widget.LinearLayout.LayoutParam

4、s;import android.widget.PopupWindow;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;import android.widget.TextView;import android.widget.Toast;public class PlayVideo extends Activity implements OnGestureListener, OnClickListener,/ 监听 OnBufferingUpdateListener,/ 当网

5、络缓冲数据流变化的时候唤起的播放事件 OnCompletionListener,/ 当媒体资源在播放的时候到达终点时唤起的播放事件 MediaPlayer.OnPreparedListener, SurfaceHolder.Callback/ 回调函数 / 视频高和宽 int videoWidth; int videoHeight; / 按钮 ImageButton play; /定义快进按钮 ImageButton fastPlay; /定义快退按钮 ImageButton fastBack; / 控制栏 LinearLayout layout_control; LinearLayout l

6、ayout_prograss; LinearLayout videoBack; / 用来播放媒体 MediaPlayer mediaPlayer; / 显示媒体 SurfaceView surView; / 用来控制SurfaceView SurfaceHolder surHolder; / 路径 String path; / 是否是播放状态 boolean boTing = true; /获取播放的位置 int num; /点击屏幕次数 int count; /第一次点击 int firClick; /第二次点击 int secClick; /通过flag判断是否全屏 boolean fla

7、g; /播放进度条 SeekBar seekbar; /显示时间组建 TextView showTime; /播放文件的时间 int minute; int second; /进度条进度 int progress; /线程控制 MyThread mt; /声音控制 SeekBar sound; /声音进度 int soundId; /显示音量 TextView showSound; /接取拖动进度条 int videoLength; boolean f = true; /播放尺寸 /按钮隐藏时间 int hint = 5000; /用于接取点击ListView位置 int position;

8、/声称随机数 Random random; /通过buttonFlag判断按钮背景 boolean buttonFlag = true; /显示视频总时间 TextView allTime; TextView distant; PopupWindow popuWindow; View view; boolean popFlag ; public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); th

9、is.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.video); / 产生对象 view = this.getLayoutInflater().inflate(R.layout.popuwindow, null); /得到布局的ID videoBack = (LinearLayout)view.findViewById(R.id.videoback); / 产生对象 pla

10、y = (ImageButton) view.findViewById(R.id.video_bu_bofang); layout_control = (LinearLayout)findViewById(R.id.layout_control); layout_prograss= (LinearLayout)findViewById(R.id.layout_prograss); seekbar = (SeekBar)view.findViewById(R.id.seekbar); showTime = (TextView)view.findViewById(R.id.showtime); f

11、astPlay = (ImageButton)view.findViewById(R.id.fastplay); fastBack = (ImageButton)view.findViewById(R.id.fastback); sound = (SeekBar)view.findViewById(R.id.sound); showSound = (TextView)view.findViewById(R.id.showsound); surView = (SurfaceView) findViewById(R.id.surfaceview_1); allTime = (TextView)vi

12、ew.findViewById(R.id.alltime); distant = (TextView)findViewById(R.id.distant); surHolder = surView.getHolder(); popuWindow = new PopupWindow(view, LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT); / 设置回调函数 surHolder.addCallback(this); / 设置风格 surHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFE

13、RS); /bu_boFang.setVisibility(View.INVISIBLE); / 设置按键监听 play.setOnClickListener(this); /快进监听 fastPlay.setOnClickListener(this); /快退按钮监听 fastBack.setOnClickListener(this); /new随机数对象 random = new Random(); /接取到播放列表中点击的位置 position = VideoList.position; try /获取ShareActivity上下文 VideoList.context = create

14、PackageContext(.iotek, Context.CONTEXT_IGNORE_SECURITY); VideoList.share = VideoList.context.getSharedPreferences(setupadapter, VideoList.context.MODE_WORLD_READABLE); VideoList.editor = VideoList.share.edit(); catch (NameNotFoundException e) e.printStackTrace(); /对读取的信息进行判断 if (VideoList.share.getS

15、tring(hinttime, 5秒).equals(5秒) hint = 5000; if (VideoList.share.getString(hinttime, 5秒).equals(10秒) hint = 10000; if (VideoList.share.getString(hinttime, 5秒).equals(15秒) hint = 15000; /设置全屏播放 surView.setOnTouchListener(new OnTouchListener() Override public boolean onTouch(View v, MotionEvent event)

16、/ TODO Auto-generated method stub / handler.sendEmptyMessageAtTime(0x11, 3000); if(MotionEvent.ACTION_DOWN = event.getAction() count+; if(count = 1) new countClear().start(); firClick = (int) System.currentTimeMillis(); if (!popFlag) / / / popuWindow = new PopupWindow(view, LayoutParams.FILL_PARENT,

17、LayoutParams.WRAP_CONTENT); popuWindow.showAtLocation(view, Gravity.BOTTOM, 0, 0); popFlag = true; handler.removeMessages(0x11); handler.sendEmptyMessageDelayed(0x11, hint); /设置layout显示 / if (!flag) /* layout_control.setVisibility(View.VISIBLE); layout_prograss.setVisibility(View.VISIBLE);*/ /点击surf

18、aceView延时3S发送信息 /* handler.removeMessages(0x11); handler.sendEmptyMessageDelayed(0x11, hint);*/ / else if (count = 2) secClick = (int) System.currentTimeMillis(); if(secClick - firClick 1000) flag = !flag; count = 0; if(flag) distant.setHeight(0); surView.setLayoutParams(new LinearLayout.LayoutParam

19、s(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); surHolder.setFixedSize(480, 760); if (!popFlag) / popuWindow = new PopupWindow(view, LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT); popuWindow.showAtLocation(view, Gravity.BOTTOM, 0, 0); popFlag = true; handler.removeMessages(0x11); hand

20、ler.sendEmptyMessageDelayed(0x11, hint); / 开始播放 / mePlayer.start(); else if (VideoList.share.getString(size, 4:3).equals(4:3) surView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 360); surHolder.setFixedSize(480, 360); distant.setHeight(250); if (!popFlag) / popuWindow =

21、new PopupWindow(view, LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT); popuWindow.showAtLocation(view, Gravity.BOTTOM, 0, 0); popFlag = true; handler.removeMessages(0x11); handler.sendEmptyMessageDelayed(0x11, hint); if (VideoList.share.getString(size, 4:3).equals(16:9) surView.setLayoutParams(n

22、ew LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 270); surHolder.setFixedSize(480, 270); distant.setHeight(250); if (!popFlag) / popuWindow = new PopupWindow(view, LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT); popuWindow.showAtLocation(view, Gravity.BOTTOM, 0, 0); popFlag = true; handl

23、er.removeMessages(0x11); handler.sendEmptyMessageDelayed(0x11, hint); count = 0; firClick = 0; secClick = 0; return true; ); /监听进度条进度 seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() Override public void onStopTrackingTouch(SeekBar seekBar) videoLength = seekBar.getProgress(); / int

24、q = mediaPlayer.getCurrentPosition(); mediaPlayer.seekTo(videoLength); /获取进度条当前的位置/ int dest = seekBar.getProgress(); /设置播放器当期的播放位置 / mediaPlayer.seekTo(num); Override public void onStartTrackingTouch(SeekBar seekBar) Override public void onProgressChanged(SeekBar seekBar, int progress, boolean from

25、User) /得到seekbar的进度 /* seekbar.setProgress(progress); videoLength = seekBar.getProgress();*/ ); sound.setOnSeekBarChangeListener(new OnSeekBarChangeListener() Override public void onStopTrackingTouch(SeekBar seekBar) / TODO Auto-generated method stub int i= seekBar.getProgress(); mediaPlayer.setVolu

26、me(i/100f,i/100f); Override public void onStartTrackingTouch(SeekBar seekBar) / TODO Auto-generated method stub Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) / TODO Auto-generated method stub int i= sound.getProgress(); showSound.setText(音量:+i); handler.remo

27、veMessages(0x11); handler.sendEmptyMessageDelayed(0x11, hint); ); private void playVideo() / 构建MediaPlayer对象 mediaPlayer = new MediaPlayer(); try / 设置媒体文件路径 mediaPlayer.setDataSource(VideoList.path); / 设置通过SurfaceView来显示画面 mediaPlayer.setDisplay(surHolder); / 准备 mediaPlayer.prepare(); distant.setHei

28、ght(200); / 设置事件监听 mediaPlayer.setOnBufferingUpdateListener(this); mediaPlayer.setOnCompletionListener(this); mediaPlayer.setOnPreparedListener(this); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); seekbar.setMax(mediaPlayer.getDuration(); /设置当前播放音量最大 soundId = sound.getProgress(); mediaPlayer.setVolume(soun

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1