Activity的生命週期: 播放音樂與影片 靜宜大學資管系 楊子青

Slides:



Advertisements
Similar presentations
從 Android SDK 3.0 開始增加了 2 個新的類別: Fragment 與 Action Bar 。 Fragment 提供不同佈局畫面的另一種用法,但 設計更有彈性,更能針對螢幕大小變化,採用 最合適的設計,例如對較大螢幕的平板裝置, 它可以在一個活動的畫面同時顯示 2 個 Fragment.
Advertisements

第13章 繪圖與多媒體 13-1 顯示圖檔-行動相簿 13-2 音樂播放-音樂播放器 13-3 影片播放-視訊播放器
實驗五:多媒體播放器選單介面.
Part 2 開發Android應用程式的流程
位置與地圖應用 此投影片為講解Android如何取得定位經緯度和使用Google Map地圖.
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
第二章 JAVA语言基础.
類別與物件 Class & Object.
Android + Web Service 建國科技大學 資管系 饒瑞佶 2017/3 V1.
ArrayAdapter & Spinner
手持式裝置之隨身照護應用 Android開發環境設定 鐘國家 老師.
手持式裝置之隨身照護應用 Android開發環境設定 鐘國家 老師.
實驗四:單位轉換程式.
Chapter 13 Android 實戰演練.
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
實驗十三:顯示目前經緯度位置.
Ch06 再談選單元件 物件導向系統實務.
MIT App Inventor簡介及 「Hello World」程式初體驗 靜宜大學資管系 楊子青
使用Android控制Arduino 史先强
第一个Android程序 本讲大纲: 1、创建Android应用程序 2、Android项目结构说明 3、运行Android应用程序
第8章 Android内容提供者(ContentProvider)应用
Chapter 6 Advanced UI Design.
第四次课后作业 1 问题描述: 将谜题定义为:包含一个初始位置,一个目标位置,以及用于判断是否是有效移动的规则集。
Chapter 7 Android應用元件 Android應用元件可以幫助我們獲得系統資源訊息(ActivityManager)、提供系統服務(Service)、搜尋系統服務(SearchManager)、監聽Intent訊息(Broadcast Receiver)以及資料共享(ContentProvider和ContentResolver)。
K/3 Cloud 技术开发培训 ----BOS 业务插件开发
Working with Databases (II) 靜宜大學資管系 楊子青
Chapter 6 進階UI設計.
第4章 Android生命周期.
第9章 使用意圖啟動活動與內建應用程式 9-1 意圖的基礎 9-2 使用意圖啟動活動
程式設計實作.
CH7 佈局、按鈕與文字編輯元件.
Android + Service 建國科技大學 資管系 饒瑞佶.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
實驗十四:顯示與控制地圖.
第2讲 移动应用开发基础知识(二) 宋婕
Text To Speech (TTS, 文字轉語音) 靜宜大學資管系 楊子青
C#面向对象程序设计 $7 继承和多态性.
第6章 建立Android使用介面 6-1 介面元件的基礎 6-2 Android的事件處理 6-3 按鈕元件 6-4 文字元件
Android App簡介及 App Inventor 2體驗 靜宜大學資管系 楊子青
C/C++/Java 哪些值不是头等程序对象
實驗十一:待辦事項程式 (儲存在手機上).
主编:钟元生 赵圣鲁.
App Inventor 2初體驗 靜宜大學資管系 楊子青
實驗九:延續實驗八, 製作一個完整音樂播放器
Location Based Services - LBS
IIS Internet Information Services
補間動畫 (Tween Animation) 靜宜大學資管系 楊子青
第五次课后作业 1 问题描述: 将谜题定义为:包含一个初始位置,一个目标位置,以及用于判断是否是有效移动的规则集。
Text To Speech (TTS, 文字轉語音) 靜宜大學資管系 楊子青
HelloPurr_Extend 靜宜大學資管系 楊子青
第二章 Java语法基础.
螢幕觸控及手勢辨別 靜宜大學資管系 楊子青.
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
Text To Speech (TTS, 文字轉 語音)、讀簡訊 靜宜大學資管系 楊子青
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
實驗十:影片播放.
硬幣遊戲解題詳解 王豐緒 銘傳大學資訊工程學系.
Android Speech To Text(STT)
用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青
第2章 Java语言基础.
多國語系 建國科技大學 資管系 饒瑞佶.
讀取網路資料及JSON開放資料 靜宜大學資管系 楊子青
加速感測器 靜宜大學資管系 楊子青.
NFC (近場通訊, Near Field Communication) 靜宜大學資管系 楊子青
SQLite資料庫 靜宜大學資管系 楊子青.
第二章 Java基础语法 北京传智播客教育
第6章 继承和多态 伍孝金
Presentation transcript:

Activity的生命週期: 播放音樂與影片 靜宜大學資管系 楊子青

1.用MediaPlayer播放音樂

MediaPlayer的3個監聽事件

處理在播放音樂時切換到其他程式的狀況

2.建立Media專案,播放聲音檔 選擇Bottom Navigation Activity 開啟res/menu/navigation.xml,按Text 3個item的android:title= 分別設為:歡迎修課, 展翅飛翔,Love MainActivity.java的3個選項之mTextMessage.setText也設為上述三個文字 在res資料夾,新增raw資料夾,放入tcyang.aac, fly.aac及love.mp4

執行看看

MainActivity.java public class MainActivity extends AppCompatActivity{ private TextView mTextMessage; MediaPlayer mper; @Override protected void onCreate(Bundle savedInstanceState) { … //隱藏狀態列 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //不要自動休眠 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); //設定螢幕水平顯示 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }

執行看看

MainActivity.java private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.navigation_home: mTextMessage.setText("歡迎修課"); mper = MediaPlayer.create(getApplicationContext(), R.raw.tcyang); mper.start(); return true; 由於是寫在監聽事件裡 此處不能用this

MainActivity.java 可以執行看看 case R.id.navigation_dashboard: mTextMessage.setText("展翅飛翔"); mper = MediaPlayer.create(getApplicationContext(), R.raw.fly); mper.start(); return true; 可以執行看看

改善:切換其他音檔,重新設定 case R.id.navigation_home: mTextMessage.setText("歡迎修課"); if (mper != null){ mper.reset(); } mper = MediaPlayer.create(getApplicationContext(), R.raw.tcyang); mper.start(); return true; case R.id.navigation_dashboard: mTextMessage.setText("展翅飛翔"); mper = MediaPlayer.create(getApplicationContext(), R.raw.fly);

改善:切換至其他應用程式再切回 需安裝到行動裝置或模擬器,再進行測試 @Override public void onPause() { super.onPause(); if(mper != null && mper.isPlaying()) mper.pause(); } @Override public void onResume(){ super.onResume(); if(mper != null) { mper.start(); } @Override public void onDestroy() { super.onDestroy(); if(mper != null) { mper.release(); } 需安裝到行動裝置或模擬器,再進行測試

3.用VideoView播放影片

用程式控制 VideoView 的影片播放

處理在播放影片時切換到其他程式的狀況

4.繼續Media專案,播放影片檔 Activity_main.xml版面配置,加入VideoView id設為 @+id/vdv

MainActivity.java public class MainActivity extends AppCompatActivity { … VideoView vdv; android.widget.MediaController vidControl;

MainActivity.java @Override protected void onCreate(Bundle savedInstanceState) { … vdv = (VideoView) findViewById(R.id.vdv); vidControl = new android.widget.MediaController(this); vdv.setMediaController(vidControl); }

MainActivity.java public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { … case R.id.navigation_notifications: mTextMessage.setText("Love"); vdv.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.love)); vdv.start(); return true; } return false;

補充