1. 程式人生 > >android 音樂播放工具類MediaPlayer

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統一管理類 *