Android应用开发--MP3音乐播放器代码实现(一),学Android看这就完事了
long id) {
if(mp3Infos != null) {
Mp3Info mp3Info = mp3Infos.get(position);
Log.d(“mp3Info–>”, mp3Info.toString());
Intent intent = new Intent();
intent.putExtra(“url”, mp3Info.getUrl());
intent.putExtra(“MSG”, AppConstant.PlayerMsg.PLAY_MSG);
intent.setClass(MainActivity.this, PlayerService.class);
startService(intent); //啟動服務
}
}
}
3.???定義一個繼承Service的服務類PlayerServie(未完善的Service類)
package com.wwj.sb.service;
import android.annotation.SuppressLint;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.IBinder;
import com.wwj.sb.domain.AppConstant;
@SuppressLint(“NewApi”)
public class PlayerService extends Service {
private MediaPlayer mediaPlayer = new MediaPlayer(); //媒體播放器對象
private String path; //音樂文件路徑
private boolean isPause; //暫停狀態
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(mediaPlayer.isPlaying()) {
stop();
}
path = intent.getStringExtra(“url”);
int msg = intent.getIntExtra(“MSG”, 0);
if(msg == AppConstant.PlayerMsg.PLAY_MSG) {
play(0);
} else if(msg == AppConstant.PlayerMsg.PAUSE_MSG) {
pause();
} else if(msg == AppConstant
.PlayerMsg.STOP_MSG) {
stop();
}
return super.onStartCommand(intent, flags, startId);
}
/**
-
播放音樂
-
@param position
*/
private void play(int position) {
try {
mediaPlayer.reset();//把各項參數恢復到初始狀態
mediaPlayer.setDataSource(path);
mediaPlayer.prepare(); //進行緩沖
mediaPlayer.setOnPreparedListener(new PreparedListener(position));//注冊一個監聽器
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
- 暫停音樂
*/
private void pause() {
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
mediaPlayer.pause();
isPause = true;
}
}
/**
- 停止音樂
*/
private void stop(){
if(mediaPlayer != null) {
mediaPlayer.stop();
try {
mediaPlayer.prepare(); // 在調用stop后如果需要再次通過start進行播放,需要之前調用prepare函數
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void onDestroy() {
if(mediaPlayer != null){
mediaPlayer.stop();
mediaPlayer.release();
}
}
/**
-
實現一個OnPrepareLister接口,當音樂準備好的時候開始播放
*/
private final class PreparedListener implements OnPreparedListener {
private int positon;
public PreparedListener(int positon) {
this.positon = positon;
}
@Override
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start(); //開始播放
if(positon > 0) { //如果音樂不是從頭播放
mediaPlayer.seekTo(positon);
}
}
}
總結
其實要輕松掌握很簡單,要點就兩個:
你不需要是天才,也不需要具備強悍的天賦,只要做到這兩點,短期內成功的概率是非常高的。
對于很多初中級Android工程師而言,想要提升技能,往往是自己摸索成長,不成體系的學習效果低效漫長且無助。
以上就是總結的關于在面試的一些總結,希望對大家能有些幫助,除了這些面試中需要注意的問題,當然最重要的就是刷題了,這里放上我之前整理的一份超全的面試專題PDF
還有?高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料 幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也可以分享給身邊好友一起學習。
【Android核心高級技術PDF文檔,BAT大廠面試真題解析】
這里只是整理出來的部分面試題,后續會持續更新,希望通過這些高級面試題能夠降低面試Android崗位的門檻,讓更多的Android工程師理解Android系統,掌握Android系統。喜歡的話麻煩點擊一個喜歡在關注一下~
高級架構技術進階腦圖、Android開發面試專題資料*,高級進階架構資料 幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也可以分享給身邊好友一起學習。
【Android核心高級技術PDF文檔,BAT大廠面試真題解析】
[外鏈圖片轉存中…(img-DqfkyUgY-1647756301384)]
這里只是整理出來的部分面試題,后續會持續更新,希望通過這些高級面試題能夠降低面試Android崗位的門檻,讓更多的Android工程師理解Android系統,掌握Android系統。喜歡的話麻煩點擊一個喜歡在關注一下~
總結
以上是生活随笔為你收集整理的Android应用开发--MP3音乐播放器代码实现(一),学Android看这就完事了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【无线通信协议笔记】蓝牙篇:传输速率
- 下一篇: C# winform使用InstallS