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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

Android视频音频播放.docx

1、Android视频音频播放1、课程名称: Android音频视频播放2、知识点2.1、上次课程的主要知识点2.2、本次预计讲解的知识点3、具体内容3.1、Activity生命周期及其应用(重点)Activity在创建到销毁的过程中也经历过多个方法来监听其生命周期执行过程。其中,主要有以下几个方法:1) onCreate:当Activity在创建后,自动执行此方法,来对Activity中的布局和组件进行一些初始化。2) onDestory:当Activity退出销毁时自动执行的方法, 主要用来进行一些收尾和垃圾回收的工作。3) onStart4) onResume5) onPause6) onS

2、top7) onRestart使用一张流程图来查看整个Activity的生命周期。生命周期的这些监听方法主要可以在以下功能中使用:1) 退出功能,可以在onCreate中记录下当前经历过的Activity类,在onDestory中将记录的Activity移除。只需要将打开过的所有Activity统一关闭,即可实现退出整个程序的功能。2) 当从详细界面返回到列表界面时,进行数据刷新功能。3) onDestory中是否音乐播放器的内存。应用生命周期的功能,实现面试宝典中的退出系统功能。 Override protected void onCreate(Bundle savedInstanceSta

3、te) super.onCreate(savedInstanceState); allActiveActivities.add(this); Override protected void onDestroy() / 将当前要退出的Activity从所有活动的Activity集合中删除 try allActiveActivities.remove(this); catch (Exception e) e.printStackTrace(); super.onDestroy(); 当点击退出时,需要将整个集合中所有的Activity关闭。 exit.setOnClickListener(new

4、OnClickListener() Override public void onClick(View v) / 循环迭代所有活动的Activity Iterator iter = allActiveActivities .iterator(); while (iter.hasNext() iter.next().finish(); );3.2、SeekBar拖动条(掌握)使用SeekBar组件,可以实现一个拖动条,用来完成调整亮度,改变音乐播放位置等功能。 也可以加入监听功能。public class MainActivity extends Activity private SeekBar

5、 seekbar; private TextView result; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); Globals.init(this); / 设置所使用的布局界面 setContentView(R.layout.activity_main); seekbar = (SeekBar) findViewById(R.id.seekbar); result = (TextView) findViewById(R.id.result); s

6、eekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() Override public void onStopTrackingTouch(SeekBar seekBar) result.setText(停止拖动); Override public void onStartTrackingTouch(SeekBar seekBar) result.setText(开始拖动); Override public void onProgressChanged(SeekBar seekBar, int progress, boole

7、an fromUser) result.setText(正在拖动,当前的值为: + progress); ); 3.3、音乐播放器(掌握)在进行音频和视频播放时,都需要使用MediaPlayer类来加载音频或视频文件。同时要注意,如果想使用模拟器播放音频时,不能使用snapshot。同时还要注意,如果使用win7 + 模拟器播放音频时,必须使用管理员身份启动Eclipse,否则SD卡无法识别。准备工作都完成后,可以开始初始化音频播放的类,MediaPlayer这个类也有自己的生命周期。可以通过其API文档来查看生命周期的执行流程:1) 建立对象后,MediaPlayer对象会默认处于空闲状态(

8、idle)2) 需要为其设置播放的数据来源(音频或视频文件)3) 调用prepare()方法,将里面的一些信息读入并准备好。4) 准备好后,才可以调用start()进行播放5) 如果设置了循环播放(looping=true)且歌曲已经播放完成,则会自动重新播放。6) 在播放状态下,调用pause()方法会进入暂停状态,再次调用start()即可继续播放。7) 如果没有设置循环播放(Looping= false),且音乐播放完成,会自动进入播放完成状态,这时如果再次调用start(),则会重新开始当前歌曲的播放。8) 停止状态不会自动进入,必须调用stop方法才会进入这个状态。9) 如果想完整的

9、释放所有内存,需要调用release()方法来完成。这里先完成一个基本的歌曲播放功能,没有界面。public class MainActivity extends Activity private MediaPlayer player; private String filePath = /mnt/sdcard/a.mp3; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

10、/ 初始化 player = new MediaPlayer(); try / 设置要播放的文件 player.setDataSource(filePath); / 进行准备操作 player.prepare(); / 开始播放 player.start(); catch (Exception e) e.printStackTrace(); Toast.makeText(this, 当前加载的音乐有问题,请确定文件格式是否正确!, Toast.LENGTH_LONG) .show(); Override protected void onDestroy() / 退出时释放音乐 if (play

11、er != null) if (player.isPlaying() player.stop(); player.release(); super.onDestroy(); 设计界面,加入播放,暂停,上一首,下一首,以及所有歌曲列表等界面组件。 完成各种音乐播放的操作功能。public class MainActivity extends Activity private MediaPlayer player; private String filePath = /mnt/sdcard/a.mp3; private String songName = Fly Me To The Moon; /

12、 音乐名称 private TextView musicName; / 播放时间长度的文本 private TextView timeText; / 拖动条 private SeekBar seekbar; / 播放/暂停 按钮 private Button playBtn; / 上一首 private Button preBtn; / 下一首 private Button nextBtn; / 总播放时长的文本 private String durationTimeStr; / 建立消息通道,以便在子线程中修改界面 private Handler handler; Override prot

13、ected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); handler = new Handler() Override public void handleMessage(Message msg) seekbar.setProgress(player.getCurrentPosition(); timeText.setText(getTextByMs(player.getCurrentPosition()

14、 + / + durationTimeStr); ; / 取得所有组件 musicName = (TextView) findViewById(R.id.music_name); timeText = (TextView) findViewById(R.id.time_text); seekbar = (SeekBar) findViewById(R.id.seekbar); playBtn = (Button) findViewById(R.id.play_btn); preBtn = (Button) findViewById(R.id.pre_btn); nextBtn = (Butto

15、n) findViewById(R.id.next_btn); / 初始化 player = new MediaPlayer(); try / 设置要播放的文件 player.setDataSource(filePath); / 进行准备操作 player.prepare(); / player.start(); / 初始化拖动条的总长度 seekbar.setMax(player.getDuration(); durationTimeStr = getTextByMs(player.getDuration(); / 修改歌曲标题 musicName.setText(songName); /

16、设置显示的播放时间 timeText.setText(00:00 / + durationTimeStr); catch (Exception e) e.printStackTrace(); Toast.makeText(this, 当前加载的音乐有问题,请确定文件格式是否正确!, Toast.LENGTH_LONG) .show(); / 加入一个多线程,通过子线程控制拖动条以及显示时间的改变 Thread t = new Thread() Override public void run() while (true) try Thread.sleep(1000); / 取得当前的播放时间位

17、置,设置到拖动条里 if (player.isPlaying() / 传递一个空消息,不需要有具体的消息内容,因为消息通道中只有一个固定的操作,而且不需要参数. handler.sendEmptyMessage(0); catch (Exception e) e.printStackTrace(); ; t.start(); / 为播放按钮加监听 playBtn.setOnClickListener(new OnClickListener() Override public void onClick(View v) if (player.isPlaying() player.pause();

18、playBtn.setBackgroundResource(R.drawable.ic_player_play_default); else player.start(); playBtn.setBackgroundResource(R.drawable.ic_player_pause_default); ); / 开始播放 playBtn.performClick(); / 加入拖动条的监听 seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() Override public void onStopTrackingTouch(SeekBar seekBar) /

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2