《移動端應(yīng)用開發(fā)》課件 模塊8 音視頻播放_第1頁
《移動端應(yīng)用開發(fā)》課件 模塊8 音視頻播放_第2頁
《移動端應(yīng)用開發(fā)》課件 模塊8 音視頻播放_第3頁
《移動端應(yīng)用開發(fā)》課件 模塊8 音視頻播放_第4頁
《移動端應(yīng)用開發(fā)》課件 模塊8 音視頻播放_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

模塊8音視頻播放1.1主界面設(shè)計與功能1.2視頻列表界面1.3視頻播放界面1.4獲取Bmob服務(wù)器上的視頻Android學(xué)習(xí)路線1.1學(xué)習(xí)路線

學(xué)習(xí)目標1.1Android學(xué)習(xí)目標素質(zhì)目標知識目標素質(zhì)1.能夠靈活使用MediaPlayer播放音樂;2.能夠簡單運用VideoView播放視頻;3.能夠規(guī)范的編寫程序;4.能夠靈活運用設(shè)計各種應(yīng)用效果。能力目標1.掌握MediaPlayer播放音樂的方法;2.掌握VideoView播放視頻方法;3.掌握音視頻的應(yīng)用方法;1.激發(fā)生活的興趣;2.培養(yǎng)想象力;3.培養(yǎng)軟件設(shè)計的多維思考能力。1.1多媒體知識點預(yù)覽#知識點重點難點應(yīng)用說明1VideoView√熟練掌握VideoView的類結(jié)構(gòu)和實現(xiàn)方法2Spinner√熟練掌握Spinner的適配器使用方法3ListView√熟練掌握ListView的適配器使用方法4自定義Adapter√熟練掌握自定義Adapter的實現(xiàn)方法5Adapter優(yōu)化√√√熟練掌握自定義Adapter的內(nèi)存優(yōu)化實現(xiàn)方法知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展作業(yè)點評Android適配器?Android中的列表組件有哪些?1.1多媒體知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展預(yù)習(xí)檢查VideoView組件如何播放視頻?你身邊的戰(zhàn)疫英雄?1.1多媒體知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展1.1多媒體-視頻播放器戰(zhàn)疫有我知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展國家政策“十四五”時期是我國全面建成小康社會、實現(xiàn)第一個百年奮斗目標之后,乘勢而上開啟全面建設(shè)社會主義現(xiàn)代化國家新征程、向第二個百年奮斗目標進軍的第一個五年。中國共產(chǎn)黨第十九屆中央委員會第五次全體會議深入分析國際國內(nèi)形勢,就制定國民經(jīng)濟和社會發(fā)展“十四五”規(guī)劃和二〇三五年遠景目標提出以下建議。2020年11月發(fā)布的《中共中央關(guān)于制定國民經(jīng)濟和社會發(fā)展第十四個五年規(guī)劃和二〇三五年遠景目標的建議》中提到要“推進媒體深度融合,實施全媒體傳播工程,做強新型主流媒體,建強用好縣級融媒體中心”知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展1.1多媒體-視頻播放器音視頻服務(wù)作用2020年,視頻將占到數(shù)據(jù)中心和終端用戶傳輸總流量85%目前主流視頻服務(wù)有哪些?1.1多媒體-視頻播放器知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展音視頻服務(wù)原理2020年,視頻將占到數(shù)據(jù)中心和終端用戶傳輸總流量85%目前主流視頻服務(wù)有哪些?1.1多媒體-視頻播放器問題導(dǎo)入知識解析學(xué)以致用課堂小結(jié)課后拓展音視頻案例介紹1.1多媒體-視頻播放器問題導(dǎo)入知識解析學(xué)以致用課堂小結(jié)課后拓展視頻播放器Android視頻使用ViewVideo類實現(xiàn)。#方法名稱功能描述1setVideoPath()設(shè)置要播放視頻文件路徑2start()開始或者繼續(xù)播放視頻3pause()暫停播放視頻4reset()將播放器重置到初始狀態(tài)5seekto()從指定位置播放視頻6stop()停止播放視頻7isPlaying()判斷當前是否正在播放視頻8getDuration()獲取當前播放視頻的時間長度1.1多媒體-視頻播放器問題導(dǎo)入知識解析學(xué)以致用課堂小結(jié)課后拓展

ViewVideo類的方法設(shè)置視頻路徑video.setVideoPath();設(shè)置播放器的控制條video.setMediaController(newMediaController(this));開始播放視頻video.start();1.1多媒體-視頻播放器問題導(dǎo)入知識解析學(xué)以致用課堂小結(jié)課后拓展

Android視頻使用VideoView步驟1.1多媒體-視頻播放器問題導(dǎo)入知識解析學(xué)以致用課堂小結(jié)課后拓展視頻添加控制柄1.實例化一個MediaController。2.調(diào)用setMediaController方法設(shè)置其為VideoView的控制器。后退rewind按鈕;暫停pause按鈕;播放play按鈕;快進fast-forward按鈕;1.1多媒體-視頻播放器問題導(dǎo)入知識解析學(xué)以致用課堂小結(jié)課后拓展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="戰(zhàn)疫有我"

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布局文件問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展視頻播放頁面的實現(xiàn)protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test);

//綁定控件柄初始化

videoView=findViewById(R.id.video_test);

//將視頻地址關(guān)聯(lián)到播放器中

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

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

//3啟動視頻播放器播放視頻

videoView.start();

}

1.1VideoView組件問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展媒體控制柄MediaController//定義媒體控制柄帶進度條

privateMediaController

mediaController;//實例化媒體控制柄mediaController

=newMediaController(this);//視頻播放器和媒體控制柄關(guān)聯(lián)

my_videoview.setMediaController(mediaController);

//媒體控制柄和視頻播放器關(guān)聯(lián)起來

mediaController.setMediaPlayer(my_videoview);

//3啟動視頻播放器播放視頻

my_videoview.start();

1.1VideoView組件問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展1.2小結(jié)

本節(jié)課主要通過一個典型的戰(zhàn)疫情視頻案例進行了詳情的講解,包括主界面的設(shè)計以及視頻播放功能的實現(xiàn)。要求初學(xué)者對VideoView組件有個簡單的了解,方便學(xué)習(xí)后面的知識。問題導(dǎo)入課堂小結(jié)知識解析學(xué)以致用課后拓展1.3課后作業(yè)?作業(yè)要求請創(chuàng)建一個VideoView組件展示的項目程序。預(yù)習(xí)作業(yè)音頻組件的使用

問題導(dǎo)入課后拓展知識解析學(xué)以致用課堂小結(jié)

每日寄語一個人的目標是從夢想開始的,一個人的幸福是從心態(tài)上把握的,而一個人的成功則是在行動中實現(xiàn)的。因為只有行動,才是否滋潤你成功的食物和泉水。下節(jié)課見模塊8音視頻播放8.1主界面設(shè)計與功能8.2音樂列表界面8.3音樂播放界面Android學(xué)習(xí)路線1.1學(xué)習(xí)路線

學(xué)習(xí)目標1.1Android學(xué)習(xí)目標素質(zhì)目標知識目標素質(zhì)1.能夠靈活使用MediaPlayer播放音樂;2.能夠簡單運用VideoView播放視頻;3.能夠規(guī)范的編寫程序;4.能夠靈活運用設(shè)計各種應(yīng)用效果。能力目標1.掌握MediaPlayer播放音樂的方法;2.掌握VideoView播放視頻方法;3.掌握音視頻的應(yīng)用方法;1.激發(fā)生活的興趣;2.培養(yǎng)想象力;3.培養(yǎng)軟件設(shè)計的多維思考能力。1.1多媒體知識點預(yù)覽#知識點重點難點應(yīng)用說明1MedioView√熟練掌握VideoView的類結(jié)構(gòu)和實現(xiàn)方法2Spinner√熟練掌握Spinner的適配器使用方法3ListView√熟練掌握ListView的適配器使用方法4自定義Adapter√熟練掌握自定義Adapter的實現(xiàn)方法5Adapter優(yōu)化√√√熟練掌握自定義Adapter的內(nèi)存優(yōu)化實現(xiàn)方法知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展作業(yè)點評Android適配器?Android中的列表組件有哪些?1.1多媒體知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展預(yù)習(xí)檢查MedioView組件如何播放音樂?你喜歡的歌曲?1.1多媒體知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展我和我的祖國1.1多媒體知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展感想

“我和我的祖國,一刻也不能分割?!备璩嗣總€人對祖國的愛,作為新時代的我們要努力學(xué)習(xí),好好把握現(xiàn)在的時光,珍惜學(xué)習(xí)的機會,從點點滴滴的學(xué)習(xí)中積累知識,為今后建設(shè)祖國打好基礎(chǔ),用我們的勤奮學(xué)習(xí)來回報祖國對我們的期望。1.1多媒體知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展國家政策“十四五”時期是我國全面建成小康社會、實現(xiàn)第一個百年奮斗目標之后,乘勢而上開啟全面建設(shè)社會主義現(xiàn)代化國家新征程、向第二個百年奮斗目標進軍的第一個五年。中國共產(chǎn)黨第十九屆中央委員會第五次全體會議深入分析國際國內(nèi)形勢,就制定國民經(jīng)濟和社會發(fā)展“十四五”規(guī)劃和二〇三五年遠景目標提出以下建議。2020年11月發(fā)布的《中共中央關(guān)于制定國民經(jīng)濟和社會發(fā)展第十四個五年規(guī)劃和二〇三五年遠景目標的建議》中提到要“推進媒體深度融合,實施全媒體傳播工程,做強新型主流媒體,建強用好縣級融媒體中心”1.1多媒體知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展音視頻服務(wù)作用2020年,視頻將占到數(shù)據(jù)中心和終端用戶傳輸總流量85%目前主流視頻服務(wù)有哪些?1.1多媒體知識解析問題導(dǎo)入學(xué)以致用課堂小結(jié)課后拓展

Timer及TemerTask的使用開發(fā)中經(jīng)常會有這樣的需求,在固定的每隔一段時間執(zhí)行某一個任務(wù)。比如UI上的控件需要隨著時間改變,我們可以使用Java為我們提供的計時器的工具類,即Timer和TimerTask。Timer是一個普通的類,其中有幾個重要的方法;而TimerTask則是一個抽象類,其中有一個抽象方法run(),類似線程中的run()方法,我們使用Timer創(chuàng)建一個它的對象,然后使用該對象的schedule方法來完成這種間隔的操作。Timer就是一個線程,使用schedule方法來完成對TimerTask的調(diào)度,多個TimerTask可以共用一個Timer,也就是說Timer對象調(diào)用一次schedule方法就是創(chuàng)建一個線程,并且調(diào)用一次schedule后TimerTask是無限制的循環(huán)下去的,使用Timer的cancle()停止操作。1.1多媒體問題導(dǎo)入知識解析學(xué)以致用課堂小結(jié)課后拓展

Timer及TemerTask的使用timer.schedule(timerTask,delay:0,period:1000);schedule方法有三個參數(shù):參數(shù)1:TimerTask類型的對象,實現(xiàn)TimerTask的run()方法就是要周期執(zhí)行的一個任務(wù);參數(shù)2:兩種類型,第一種是long類型,表示多長時間后開始執(zhí)行,另一種是Date類型,表示從該時間后開始執(zhí)行;參數(shù)3:執(zhí)行的周期,為long類型,單位毫秒;1.1多媒體問題導(dǎo)入知識解析學(xué)以致用課堂小結(jié)課后拓展

Timer及TemerTask的使用timer.schedule(timerTask,delay:0,period:1000);schedule方法有三個參數(shù):參數(shù)1:TimerTask類型的對象,實現(xiàn)TimerTask的run()方法就是要周期執(zhí)行的一個任務(wù);參數(shù)2:兩種類型,第一種是long類型,表示多長時間后開始執(zhí)行,另一種是Date類型,表示從該時間后開始執(zhí)行;參數(shù)3:執(zhí)行的周期,為long類型,單位毫秒;1.1多媒體問題導(dǎo)入知識解析學(xué)以致用課堂小結(jié)課后拓展

Handler的使用耗時的操作放在一個子線程中,因為子線程涉及到UI更新,更新UI只能在主線程中更新,子線程中操作是危險的。此時,Handler就可以解決這個復(fù)雜的問題,Handler是主要接收子線程發(fā)送的數(shù)據(jù),并用此數(shù)據(jù)配合主線程更新UI。由于Handler運行在主線程中(UI線程中),它與子線程可以通過Message對象來傳遞數(shù)據(jù),此時,Handler就承擔著接收子線程傳遞過來的Message對象(包含數(shù)據(jù)),把這些消息放入主線程隊列中,配合主線程進行更新UI。Handler:子線程向主線程發(fā)送消息、主線程處理接收到的消息;Message:消息載體,如果傳輸數(shù)據(jù)簡單可以直接使用arg1、arg2這兩個整型數(shù)據(jù),如果需要傳遞復(fù)雜的消息,使用obj傳輸對象數(shù)據(jù);1.1多媒體問題導(dǎo)入知識解析學(xué)以致用課堂小結(jié)課后拓展歌曲查詢

getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,MediaStore.Audio.Media.DEFAULT_SORT_ORDER);第1個參數(shù):table,是根據(jù)Uri確定的數(shù)據(jù)庫表;第2個參數(shù):projection,是要查詢的列;第3個參數(shù):selection,查詢條件;第4個參數(shù):selectionArgs,填充where查找條件中的占位符”?”;第5個參數(shù):order,是排序方式。對應(yīng)SQL的結(jié)構(gòu)是:selectprojectionfromtablewhere(selection)orderbyorder;1.1多媒體問題導(dǎo)入知識解析學(xué)以致用課堂小結(jié)課后拓展1.1多媒體-音樂播放器音視頻案例介紹問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展音樂播放器MediaPlayer是用于播放音頻和視頻的,它支持多種格式音頻文件(3gp、mp4),并提供了非常全面的控制方法。#方法名稱功能描述1setDataSource()設(shè)置要播放音頻文件路徑2prepare()在開始播放之前調(diào)用這個方法完成準備工作3start()開始或繼續(xù)播放音頻4pause()暫停播放音頻5reset()將MediaPlayer對象重置到剛剛創(chuàng)建的狀態(tài)6seekTo()從指定位置開始播放音頻7stop()停止播放音頻,調(diào)用該方法后MediaPlayer對象無法在播放音頻8release()釋放掉與MediaPlayer對象相關(guān)的資源9isPlaying()判斷當前MediaPlayer是否正在播放音頻1.1多媒體-音樂播放器問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展

創(chuàng)建MediaPlayerMediaPlayermediaPlayer=newMediaPlayer();mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);MediaPlayer接收音頻類型有很多,其中有四種較為常用的類型:AudioManager.STREAM_MUSIC(音樂)AudioManager.STREAM_RING(響鈴)AudioManager.STREAM_ALARM(鬧鐘)AudioManager.STREAM_NOTIFICTION(提示音)音頻類型不同占據(jù)的內(nèi)存空間也不同,音頻時間越短占的內(nèi)存越小1.1多媒體-音樂播放器問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展

設(shè)置數(shù)據(jù)源設(shè)置數(shù)據(jù)源有三種方式,分別是播放應(yīng)用自帶的音頻文件、播放SD卡中的音頻文件、播放網(wǎng)絡(luò)音頻文件。mediaPlayer.create(this,R.raw.xxx);mediaPlayer.setDataSource("mnt/sdcard/xxx.mp3");mediaPlayer.setDataSource("http://www.xxx.mp3");播放本地音頻文件mediaPlayer.prepare();mediaPlayer.start();1.1多媒體-音樂播放器問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展

播放網(wǎng)絡(luò)音頻文件mediaPlayer.prepareAsync();mediaPlayer.setOnPreparedListener(newOnPreparedListener){publicvoidonPrepared(MediaPlayerplayer){ mediaPlayer.start();}}暫停播放音頻文件if(mediaPlayer!=null&&mediaPlayer.isPlaying()){ mediaPlayer.pause();}1.1多媒體-音樂播放器問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展重新播放音頻文件暫停狀態(tài)下進行重播播放狀態(tài)下進行重播if(mediaPlayer!=null&&mediaPlayer.isPlaying()){mediaPlayer.seekTo(0);return;}if(mediaPlayer!=null){mediaPlayer.seekTo(0);mediaPlayer.start();}1.1多媒體-音樂播放器問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展停止播放音頻文件停止播放音頻文件if(mediaPlayer!=null&&mediaPlayer.isPlaying()){mediaPlayer.stop();mediaPlayer.release();mediaPlayer=null;}1.1多媒體-音樂播放器問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展音樂播放器界面<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多媒體-音樂播放器問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展

<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多媒體-音樂播放器問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展音樂播放器界面privatevoidplay(){

try{

mp.reset();

//重新設(shè)置要播放的音頻

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多媒體-音樂播放器問題導(dǎo)入學(xué)以致用知識解析課堂小結(jié)課后拓展音樂播放器界面switch(v.getId()){

caseR.id.btn_start:

//調(diào)用play()方法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論