《移動端應用開發》課件 模塊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

提交評論