《移动端应用开发》课件 模块8 音视频播放_第1页
《移动端应用开发》课件 模块8 音视频播放_第2页
《移动端应用开发》课件 模块8 音视频播放_第3页
《移动端应用开发》课件 模块8 音视频播放_第4页
《移动端应用开发》课件 模块8 音视频播放_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模块8音视频播放1.1主界面设计与功能1.2视频列表界面1.3视频播放界面1.4获取Bmob服务器上的视频Android学习路线1.1学习路线

学习目标1.1Android学习目标素质目标知识目标素质1.能够灵活使用MediaPlayer播放音乐;2.能够简单运用VideoView播放视频;3.能够规范的编写程序;4.能够灵活运用设计各种应用效果。能力目标1.掌握MediaPlayer播放音乐的方法;2.掌握VideoView播放视频方法;3.掌握音视频的应用方法;1.激发生活的兴趣;2.培养想象力;3.培养软件设计的多维思考能力。1.1多媒体知识点预览#知识点重点难点应用说明1VideoView√熟练掌握VideoView的类结构和实现方法2Spinner√熟练掌握Spinner的适配器使用方法3ListView√熟练掌握ListView的适配器使用方法4自定义Adapter√熟练掌握自定义Adapter的实现方法5Adapter优化√√√熟练掌握自定义Adapter的内存优化实现方法知识解析问题导入学以致用课堂小结课后拓展作业点评Android适配器?Android中的列表组件有哪些?1.1多媒体知识解析问题导入学以致用课堂小结课后拓展预习检查VideoView组件如何播放视频?你身边的战疫英雄?1.1多媒体知识解析问题导入学以致用课堂小结课后拓展1.1多媒体-视频播放器战疫有我知识解析问题导入学以致用课堂小结课后拓展国家政策“十四五”时期是我国全面建成小康社会、实现第一个百年奋斗目标之后,乘势而上开启全面建设社会主义现代化国家新征程、向第二个百年奋斗目标进军的第一个五年。中国共产党第十九届中央委员会第五次全体会议深入分析国际国内形势,就制定国民经济和社会发展“十四五”规划和二〇三五年远景目标提出以下建议。2020年11月发布的《中共中央关于制定国民经济和社会发展第十四个五年规划和二〇三五年远景目标的建议》中提到要“推进媒体深度融合,实施全媒体传播工程,做强新型主流媒体,建强用好县级融媒体中心”知识解析问题导入学以致用课堂小结课后拓展1.1多媒体-视频播放器音视频服务作用2020年,视频将占到数据中心和终端用户传输总流量85%目前主流视频服务有哪些?1.1多媒体-视频播放器知识解析问题导入学以致用课堂小结课后拓展音视频服务原理2020年,视频将占到数据中心和终端用户传输总流量85%目前主流视频服务有哪些?1.1多媒体-视频播放器问题导入知识解析学以致用课堂小结课后拓展音视频案例介绍1.1多媒体-视频播放器问题导入知识解析学以致用课堂小结课后拓展视频播放器Android视频使用ViewVideo类实现。#方法名称功能描述1setVideoPath()设置要播放视频文件路径2start()开始或者继续播放视频3pause()暂停播放视频4reset()将播放器重置到初始状态5seekto()从指定位置播放视频6stop()停止播放视频7isPlaying()判断当前是否正在播放视频8getDuration()获取当前播放视频的时间长度1.1多媒体-视频播放器问题导入知识解析学以致用课堂小结课后拓展

ViewVideo类的方法设置视频路径video.setVideoPath();设置播放器的控制条video.setMediaController(newMediaController(this));开始播放视频video.start();1.1多媒体-视频播放器问题导入知识解析学以致用课堂小结课后拓展

Android视频使用VideoView步骤1.1多媒体-视频播放器问题导入知识解析学以致用课堂小结课后拓展视频添加控制柄1.实例化一个MediaController。2.调用setMediaController方法设置其为VideoView的控制器。后退rewind按钮;暂停pause按钮;播放play按钮;快进fast-forward按钮;1.1多媒体-视频播放器问题导入知识解析学以致用课堂小结课后拓展1.1VideoView组件

VideoView组件布局<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="/apk/res/android"

xmlns:app="/apk/res-auto"

xmlns:tools="/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity">

<TextView

android:id="@+id/my_videoname"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="战疫有我"

android:textColor="#00008F"

android:textStyle="bold"

android:textSize="30sp"

android:layout_gravity="center"

android:layout_marginTop="30dp"/>

<VideoView

android:id="@+id/my_videoview"

android:layout_width="match_parent"

android:layout_height="400dp"

/>

</LinearLayout>Activity_main.xml布局文件问题导入学以致用知识解析课堂小结课后拓展视频播放页面的实现protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test);

//绑定控件柄初始化

videoView=findViewById(R.id.video_test);

//将视频地址关联到播放器中

//android.resource://"+getPackageName()+"/"+R.raw.sdkj

videoView.setVideoPath("android.resource://"+getPackageName()+"/"+R.raw.sdkj);

//3启动视频播放器播放视频

videoView.start();

}

1.1VideoView组件问题导入学以致用知识解析课堂小结课后拓展媒体控制柄MediaController//定义媒体控制柄带进度条

privateMediaController

mediaController;//实例化媒体控制柄mediaController

=newMediaController(this);//视频播放器和媒体控制柄关联

my_videoview.setMediaController(mediaController);

//媒体控制柄和视频播放器关联起来

mediaController.setMediaPlayer(my_videoview);

//3启动视频播放器播放视频

my_videoview.start();

1.1VideoView组件问题导入学以致用知识解析课堂小结课后拓展1.2小结

本节课主要通过一个典型的战疫情视频案例进行了详情的讲解,包括主界面的设计以及视频播放功能的实现。要求初学者对VideoView组件有个简单的了解,方便学习后面的知识。问题导入课堂小结知识解析学以致用课后拓展1.3课后作业✎作业要求请创建一个VideoView组件展示的项目程序。预习作业音频组件的使用

问题导入课后拓展知识解析学以致用课堂小结

每日寄语一个人的目标是从梦想开始的,一个人的幸福是从心态上把握的,而一个人的成功则是在行动中实现的。因为只有行动,才是否滋润你成功的食物和泉水。下节课见模块8音视频播放8.1主界面设计与功能8.2音乐列表界面8.3音乐播放界面Android学习路线1.1学习路线

学习目标1.1Android学习目标素质目标知识目标素质1.能够灵活使用MediaPlayer播放音乐;2.能够简单运用VideoView播放视频;3.能够规范的编写程序;4.能够灵活运用设计各种应用效果。能力目标1.掌握MediaPlayer播放音乐的方法;2.掌握VideoView播放视频方法;3.掌握音视频的应用方法;1.激发生活的兴趣;2.培养想象力;3.培养软件设计的多维思考能力。1.1多媒体知识点预览#知识点重点难点应用说明1MedioView√熟练掌握VideoView的类结构和实现方法2Spinner√熟练掌握Spinner的适配器使用方法3ListView√熟练掌握ListView的适配器使用方法4自定义Adapter√熟练掌握自定义Adapter的实现方法5Adapter优化√√√熟练掌握自定义Adapter的内存优化实现方法知识解析问题导入学以致用课堂小结课后拓展作业点评Android适配器?Android中的列表组件有哪些?1.1多媒体知识解析问题导入学以致用课堂小结课后拓展预习检查MedioView组件如何播放音乐?你喜欢的歌曲?1.1多媒体知识解析问题导入学以致用课堂小结课后拓展我和我的祖国1.1多媒体知识解析问题导入学以致用课堂小结课后拓展感想

“我和我的祖国,一刻也不能分割。”歌唱了每个人对祖国的爱,作为新时代的我们要努力学习,好好把握现在的时光,珍惜学习的机会,从点点滴滴的学习中积累知识,为今后建设祖国打好基础,用我们的勤奋学习来回报祖国对我们的期望。1.1多媒体知识解析问题导入学以致用课堂小结课后拓展国家政策“十四五”时期是我国全面建成小康社会、实现第一个百年奋斗目标之后,乘势而上开启全面建设社会主义现代化国家新征程、向第二个百年奋斗目标进军的第一个五年。中国共产党第十九届中央委员会第五次全体会议深入分析国际国内形势,就制定国民经济和社会发展“十四五”规划和二〇三五年远景目标提出以下建议。2020年11月发布的《中共中央关于制定国民经济和社会发展第十四个五年规划和二〇三五年远景目标的建议》中提到要“推进媒体深度融合,实施全媒体传播工程,做强新型主流媒体,建强用好县级融媒体中心”1.1多媒体知识解析问题导入学以致用课堂小结课后拓展音视频服务作用2020年,视频将占到数据中心和终端用户传输总流量85%目前主流视频服务有哪些?1.1多媒体知识解析问题导入学以致用课堂小结课后拓展

Timer及TemerTask的使用开发中经常会有这样的需求,在固定的每隔一段时间执行某一个任务。比如UI上的控件需要随着时间改变,我们可以使用Java为我们提供的计时器的工具类,即Timer和TimerTask。Timer是一个普通的类,其中有几个重要的方法;而TimerTask则是一个抽象类,其中有一个抽象方法run(),类似线程中的run()方法,我们使用Timer创建一个它的对象,然后使用该对象的schedule方法来完成这种间隔的操作。Timer就是一个线程,使用schedule方法来完成对TimerTask的调度,多个TimerTask可以共用一个Timer,也就是说Timer对象调用一次schedule方法就是创建一个线程,并且调用一次schedule后TimerTask是无限制的循环下去的,使用Timer的cancle()停止操作。1.1多媒体问题导入知识解析学以致用课堂小结课后拓展

Timer及TemerTask的使用timer.schedule(timerTask,delay:0,period:1000);schedule方法有三个参数:参数1:TimerTask类型的对象,实现TimerTask的run()方法就是要周期执行的一个任务;参数2:两种类型,第一种是long类型,表示多长时间后开始执行,另一种是Date类型,表示从该时间后开始执行;参数3:执行的周期,为long类型,单位毫秒;1.1多媒体问题导入知识解析学以致用课堂小结课后拓展

Timer及TemerTask的使用timer.schedule(timerTask,delay:0,period:1000);schedule方法有三个参数:参数1:TimerTask类型的对象,实现TimerTask的run()方法就是要周期执行的一个任务;参数2:两种类型,第一种是long类型,表示多长时间后开始执行,另一种是Date类型,表示从该时间后开始执行;参数3:执行的周期,为long类型,单位毫秒;1.1多媒体问题导入知识解析学以致用课堂小结课后拓展

Handler的使用耗时的操作放在一个子线程中,因为子线程涉及到UI更新,更新UI只能在主线程中更新,子线程中操作是危险的。此时,Handler就可以解决这个复杂的问题,Handler是主要接收子线程发送的数据,并用此数据配合主线程更新UI。由于Handler运行在主线程中(UI线程中),它与子线程可以通过Message对象来传递数据,此时,Handler就承担着接收子线程传递过来的Message对象(包含数据),把这些消息放入主线程队列中,配合主线程进行更新UI。Handler:子线程向主线程发送消息、主线程处理接收到的消息;Message:消息载体,如果传输数据简单可以直接使用arg1、arg2这两个整型数据,如果需要传递复杂的消息,使用obj传输对象数据;1.1多媒体问题导入知识解析学以致用课堂小结课后拓展歌曲查询

getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,MediaStore.Audio.Media.DEFAULT_SORT_ORDER);第1个参数:table,是根据Uri确定的数据库表;第2个参数:projection,是要查询的列;第3个参数:selection,查询条件;第4个参数:selectionArgs,填充where查找条件中的占位符”?”;第5个参数:order,是排序方式。对应SQL的结构是:selectprojectionfromtablewhere(selection)orderbyorder;1.1多媒体问题导入知识解析学以致用课堂小结课后拓展1.1多媒体-音乐播放器音视频案例介绍问题导入学以致用知识解析课堂小结课后拓展音乐播放器MediaPlayer是用于播放音频和视频的,它支持多种格式音频文件(3gp、mp4),并提供了非常全面的控制方法。#方法名称功能描述1setDataSource()设置要播放音频文件路径2prepare()在开始播放之前调用这个方法完成准备工作3start()开始或继续播放音频4pause()暂停播放音频5reset()将MediaPlayer对象重置到刚刚创建的状态6seekTo()从指定位置开始播放音频7stop()停止播放音频,调用该方法后MediaPlayer对象无法在播放音频8release()释放掉与MediaPlayer对象相关的资源9isPlaying()判断当前MediaPlayer是否正在播放音频1.1多媒体-音乐播放器问题导入学以致用知识解析课堂小结课后拓展

创建MediaPlayerMediaPlayermediaPlayer=newMediaPlayer();mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);MediaPlayer接收音频类型有很多,其中有四种较为常用的类型:AudioManager.STREAM_MUSIC(音乐)AudioManager.STREAM_RING(响铃)AudioManager.STREAM_ALARM(闹钟)AudioManager.STREAM_NOTIFICTION(提示音)音频类型不同占据的内存空间也不同,音频时间越短占的内存越小1.1多媒体-音乐播放器问题导入学以致用知识解析课堂小结课后拓展

设置数据源设置数据源有三种方式,分别是播放应用自带的音频文件、播放SD卡中的音频文件、播放网络音频文件。mediaPlayer.create(this,R.raw.xxx);mediaPlayer.setDataSource("mnt/sdcard/xxx.mp3");mediaPlayer.setDataSource("http://www.xxx.mp3");播放本地音频文件mediaPlayer.prepare();mediaPlayer.start();1.1多媒体-音乐播放器问题导入学以致用知识解析课堂小结课后拓展

播放网络音频文件mediaPlayer.prepareAsync();mediaPlayer.setOnPreparedListener(newOnPreparedListener){publicvoidonPrepared(MediaPlayerplayer){ mediaPlayer.start();}}暂停播放音频文件if(mediaPlayer!=null&&mediaPlayer.isPlaying()){ mediaPlayer.pause();}1.1多媒体-音乐播放器问题导入学以致用知识解析课堂小结课后拓展重新播放音频文件暂停状态下进行重播播放状态下进行重播if(mediaPlayer!=null&&mediaPlayer.isPlaying()){mediaPlayer.seekTo(0);return;}if(mediaPlayer!=null){mediaPlayer.seekTo(0);mediaPlayer.start();}1.1多媒体-音乐播放器问题导入学以致用知识解析课堂小结课后拓展停止播放音频文件停止播放音频文件if(mediaPlayer!=null&&mediaPlayer.isPlaying()){mediaPlayer.stop();mediaPlayer.release();mediaPlayer=null;}1.1多媒体-音乐播放器问题导入学以致用知识解析课堂小结课后拓展音乐播放器界面<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="音乐播放器"

android:textSize="50sp"

android:textColor="#ad0000"

android:layout_marginTop="80dp"

android:layout_gravity="center"

/>1.1多媒体-音乐播放器问题导入学以致用知识解析课堂小结课后拓展

<Button

android:id="@+id/btn_stop"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:text="停止"

android:textSize="30sp"

android:textStyle="bold"

android:textColor="#000000"

android:layout_weight="1"

android:layout_marginTop="320dp"

/>音乐播放器界面<Button

android:id="@+id/btn_start"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:text="播放"

android:textColor="#000000"

android:textSize="30sp"

android:textStyle="bold"

android:layout_marginTop="320dp"/><Button

android:id="@+id/btn_pause"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:text="暂停"

android:textSize="30sp"

android:textStyle="bold"

android:textColor="#000000"

android:layout_weight="1"

android:layout_marginTop="320dp"

/>1.1多媒体-音乐播放器问题导入学以致用知识解析课堂小结课后拓展音乐播放器界面privatevoidplay(){

try{

mp.reset();

//重新设置要播放的音频

mp=MediaPlayer.create(MainActivity.this,R.raw.mycountry);

//mp.prepare();

mp.start();//开始播放

btnstart.setEnabled(false);

btnpause.setEnabled(true);

btnstop.setEnabled(true);

}catch(Exceptione){

e.printStackTrace();//输出异常

}

}1.1多媒体-音乐播放器问题导入学以致用知识解析课堂小结课后拓展音乐播放器界面switch(v.getId()){

caseR.id.btn_start:

//调用play()方法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论