android 音樂播放工具類MediaPlayer
上程式碼
public class Player implements OnBufferingUpdateListener, OnCompletionListener,
OnPreparedListener {
public MediaPlayer mediaPlayer; // 媒體播放器
private SeekBar seekBar; // 拖動條
private Timer mTimer = new Timer(); // 計時器
// 初始化播放器
public Player(SeekBar seekBar) {
super ();
this.seekBar = seekBar;
try {
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);// 設定媒體流型別
mediaPlayer.setOnBufferingUpdateListener(this);
mediaPlayer.setOnPreparedListener(this);
} catch (Exception e) {
e.printStackTrace();
}
// 每一秒觸發一次
mTimer.schedule(timerTask, 0, 1000);
}
// 計時器
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
if (mediaPlayer == null)
return;
if (mediaPlayer.isPlaying() && seekBar.isPressed() == false) {
handler.sendEmptyMessage(0); // 傳送訊息
}
}
};
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
int position = mediaPlayer.getCurrentPosition();
int duration = mediaPlayer.getDuration();
if (duration > 0) {
// 計算進度(獲取進度條最大刻度*當前音樂播放位置 / 當前音樂時長)
long pos = seekBar.getMax() * position / duration;
seekBar.setProgress((int) pos);
}
};
};
public void play() {
mediaPlayer.start();
}
/**
*
* @param url
* url地址
*/
public void playUrl(String url) {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(url); // 設定資料來源
mediaPlayer.prepare(); // prepare自動播放
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// 暫停
public void pause() {
mediaPlayer.pause();
}
// 停止
public void stop() {
if (mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer.release();
mediaPlayer = null;
}
}
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
Log.e("mediaPlayer", "onPrepared");
}
@Override
public void onCompletion(MediaPlayer mp) {
Log.e("mediaPlayer", "onCompletion");
}
/**
* 緩衝更新
*/
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
seekBar.setSecondaryProgress(percent);
int currentProgress = seekBar.getMax()
* mediaPlayer.getCurrentPosition() / mediaPlayer.getDuration();
Log.e(currentProgress + "% play", percent + " buffer");
}
}
相關推薦
android 音樂播放工具類MediaPlayer
上程式碼 public class Player implements OnBufferingUpdateListener, OnCompletionListener, OnPreparedListener { public Me
收集了很多音樂播放器類的Android專案原始碼,非常不錯的開源專案【轉】
JieCaoVideoPlayer立志成為Android平臺使用最廣泛的視訊播放控制元件http://neast.cn/forum.php?mod=viewthread&tid=61610&fromuid=5 OPlayer Android平臺基於Vitamio的開源播放器http://ne
Android經常使用工具類封裝---SharedPreferencesUtil
保存數據 n) ng- -a 操作 ext.get 名稱 simple tint SharedPreferences經常使用於保存一些簡單的數據,如記錄用戶操作的配置等,使用簡單。 public class SharedPreferencesUtil { //存
android音樂播放器開發 SweetMusicPlayer 載入歌曲列表
路徑 本地 exc tao near import 設置 優先 特殊 上一篇寫了播放器的總體實現思路,http://blog.csdn.net/huweigoodboy/article/details/39855653,如今來總結下載入歌曲列表。 代碼地址
android簡單的工具類
import android.app.Activity; import android.app.ActivityManager; import android.content.ComponentName; import android.content.Context; import android.
Android 常用開發工具類
Android 好用的框架與UI效果demo收集 1.AndroidCommon 裡面幾乎包含你所有想要的工具類,如: 網路工具、SharedPreferences工具、時間工具、日誌工具、字串工具、Json工具、裝置資訊工具、APP工具類、bitmap的工具類等等 github
Android撥打電話工具類
歡迎關注技術公眾號,微訊號搜尋ColorfulCode 程式碼男人 分享技術文章,投稿分享,不限技術種類,不限技術深度,讓更多人因為分享而受益。 動態許可權框架使用的Acp,封裝撥打電話兩種常用模式,程式碼如下: public class CallPhoneU
Android 時間轉換工具類
在做聊天頁面的時候,難免遇到要把一個時間戳轉換為一個好看的格式,每次都動手寫也太累了,在這裡給大家分享一下我的工具類吧 其中time_year、time_month等 在文字最後貼出來給大家哦。 /** * 時間轉換工具 */ public class TimeUtil {
android 音樂播放器介面
一、團隊成員 姓名 學號 部落格地址 成凱 1600802002 http://www.cnblogs.com/ck03/ 黨康 1600802004 http://www.cnblogs.com/lxxxy/ 趙樂 1600802034 http://www.cnblogs.com/Z-y-H/ 二、
Android :網路判斷工具類
package com.example.wifinetworkdemo.util; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo;
Android-萬能的工具類集合
背景 說到工具類,不得不說大大小小的專案幾乎都會寫一些專案必備的工具類,方便快捷,程式碼的複用性也極高,所以為了以後方便起見,便整理和編寫了一些較為常用的工具類! 過程 每一份艱辛的付出都會有一定的收穫,在整理和編寫的過程中也有了進一步的提升,雖說可能用到的不多,但是也會一直
Android音樂播放器
主要功能介紹 實現音樂暫停,播放,下一首,上一首; 程式執行截圖 核心程式碼解析 功能鍵的實現 public void onClick(View v) { switch(v.getId()){
Android開發-使用工具類判斷網路的連線狀態
第一步 建立一個工具類NetWorks 在工具類中寫一個方法(getConne) 這個工具類裡可以寫很多方法 不僅僅限於判斷網路的連線狀態 比如常見的還有網路請求資料等等…在其他的頁面可以呼叫到這個工具類裡的方法 public class NetWorks { //判斷網路是否連線
Android清理快取工具類
DataCleanUtil.java import android.content.Context; import android.os.Environment; import java.io.File; import java.math.BigDecimal; /
Android : 封裝Http工具類,以及日誌攔截器的工具包
這個沒有什麼好說的 同標題 package soexample.umeng.com.okhttp.utils; import android.os.Environment; import java.io.File; import java.io.IOException; import
android 檔案管理工具類
package com.dejun.commonsdk.util; import com.orhanobut.logger.Logger; import org.greenrobot.greendao.annotation.NotNull; import java.io.File; impor
Android 常用開發工具類之 SPUtils (SharedPreference 工具類)
開發過程中難免會遇到如持久儲存使用者資訊等需求,而由於資料量很少感覺使用 Sql 有些殺雞用牛刀的感覺也有些累贅。所以善於使用 SharedPreference 可以幫助我們在本地儲存一些資料量少,又使用很頻繁的東西。 SPUtils 一個可以幫助我們很簡潔的使用 Sha
Android 中英文切換工具類
public class ChangeLanguageHelper { public static final int LANGUAGE_CHINA = 1; public static final int LANGUAGE_ENGLISH = 2; public stat
Android音樂播放器的簡單實現
1、MusicService 音樂播放器的Service,裡面獲取音樂檔案,封裝了MediaPlayer,實現播放上一首和下一首,播放,停止,封裝成方法供Activity呼叫,獲取音樂的當前進度,總長度、名字,通過傳送廣播的方式發給Activity pa
Android 常用輔助工具類Utils總結
Android 專案中常常會用一些輔助工具類,便於我們在開發中使用。下面做一下總結。 1、日誌工具類L.java import android.util.Log; /** * Log統一管理類 *