Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

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

2 1.用MediaPlayer播放音樂

3 MediaPlayer的3個監聽事件

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

5 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

6 執行看看

7 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); }

8 執行看看

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

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

11 改善:切換其他音檔,重新設定 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);

12 改善:切換至其他應用程式再切回 需安裝到行動裝置或模擬器,再進行測試 @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(); } 需安裝到行動裝置或模擬器,再進行測試

13 3.用VideoView播放影片

14 用程式控制 VideoView 的影片播放

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

16 4.繼續Media專案,播放影片檔 Activity_main.xml版面配置,加入VideoView

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

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

19 MainActivity.java public boolean 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;

20 補充


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

Similar presentations


Ads by Google