欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

android實現(xiàn)簡單音樂播放器

 更新時間:2019年12月23日 10:38:18   作者:geekjoker  
這篇文章主要為大家詳細介紹了android實現(xiàn)簡單音樂播放器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了android音樂播放器的具體代碼,供大家參考,具體內(nèi)容如下

話不多說先上效果

前言

寫這個音樂播放器實在是迫不得已。因為我們Andoird課程要求寫一個音樂播放器。所以就有了此項目。這個項目比較簡單,實現(xiàn)了最基本的音樂播放功能,然后界面是仿照著網(wǎng)易云音樂的樣式,寫的想寫成一樣但是技術(shù)不夠。

基本的音樂播放

設(shè)置播放音樂文件

Android播放媒體文件大概都是使用MediaPlayer這個類來操作的。
在播放音樂前,必須要給這個MediaPlayer設(shè)置一要播放的東西,對于文件資源來說(音樂,視頻都算一種文件資源),能夠唯一標識它的就是文件的地址(路徑)。我們這里使用的是本機音樂,那么就使用文件路徑就可以。

private static final MediaPlayer mediaPlayer = new MediaPlayer();
 /**
  * 設(shè)置播放文件
  * @param path
  */
 public static void setPlayPath(String path){
  try {
   // 設(shè)置類型
   mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
   // 這里要reset一下啊 (當已經(jīng)設(shè)置過音樂后,再調(diào)用此方法時,沒有reset就會異常)
   mediaPlayer.reset();
   mediaPlayer.setDataSource(path);// 設(shè)置文件源
   mediaPlayer.prepare();// 解析文件
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

播放音樂

設(shè)置完播放文件后,下一步就是音樂的播放、暫停、跳進度播放等等。
這里先介紹MediaPlayer的自帶方法

mediaPlayer.isPlaying();// 是否正在播放
mediaPlayer.start(); // 開始播放,如果已經(jīng)在播放不會有什么效果
mediaPlayer.stop(); // 停止播放 - 不可以使用start重新開始
mediaPlayer.pause(); // 暫停當前播放
mediaPlayer.seekTo(0); // 移動到某一播放進度
mediaPlayer.getCurrentPosition();// 獲取當前播放進度

了解了上面的方法后那么就可以實現(xiàn)幾乎所有的音樂播放功能。

那么要實現(xiàn)音樂播放功能只需要在調(diào)用了setPlayPath(path)后再調(diào)用mediaPlayer.start()就能成功的播放音樂前提條件是你確實的設(shè)置了正確的音樂路徑

獲取音樂的信息

獲取音樂信息可以使用MediaMetadataRetriever類來獲取。它和MediaPlayer也需要一個文件路徑來尋找到音樂。

private static final MediaMetadataRetriever mmr = new MediaMetadataRetriever();
public static Song getSong(String path){
  Song song = new Song();// 自己定義的歌曲類
  song.setPath(path);
  // 獲取音樂相關(guān)信息
  mmr.setDataSource(path);
  // 歌曲名
  String title = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
  song.setTitle(title);
  // 唱片集
  String album = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
  song.setAlbum(album);
  // (藝術(shù)家)歌手
  String artist = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
  song.setArtist(artist);
  // 歌曲長度(時間長度 單位 mm)
  int duration = Integer.parseInt(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)); // 播放時長單位為毫秒 
  song.setDuration(duration);
  // 歌曲的圖片
  byte[] image = mmr.getEmbeddedPicture();// 圖片,可以通過BitmapFactory.decodeByteArray轉(zhuǎn)換為bitmap圖片
//  BitmapFactory.decodeByteArray(image, 0, image.length);
  song.setImage(image);
  return song;
 }

其他功能

其他功能都是基于Android的事件和以上播放功能加上MediaMetadataRetriever獲取音樂信息來實現(xiàn)的。所以就不詳細介紹直接貼代碼吧。

github代碼倉庫

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Flutter 如何封裝文本輸入框組件

    Flutter 如何封裝文本輸入框組件

    在實際開發(fā)過程中,往往開始是完成功能層面的開發(fā),然而再考慮組件封裝和代碼優(yōu)化。當然,組件封裝越早做越好,因為這樣會提高整個團隊開發(fā)的規(guī)范性和效率。本文將介紹如何封裝一個文本輸入框組件
    2021-06-06
  • Flutter自定義Appbar搜索框效果

    Flutter自定義Appbar搜索框效果

    這篇文章主要為大家詳細介紹了Flutter自定義Appbar搜索框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Kotlin中Object關(guān)鍵字的使用示例介紹

    Kotlin中Object關(guān)鍵字的使用示例介紹

    在Kotlin中object是一個特殊的關(guān)鍵字。主要用于聲明一個類的同時創(chuàng)建這個類的對象(例如單例)。在Kotlin中它有三個方面的應(yīng)用:對象表達式,對象聲明和伴生對象
    2022-09-09
  • Android Studio3.6新特性之視圖綁定ViewBinding使用指南

    Android Studio3.6新特性之視圖綁定ViewBinding使用指南

    這篇文章主要介紹了Android Studio3.6新特性之視圖綁定ViewBinding使用指南,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Android kotlin+協(xié)程+Room數(shù)據(jù)庫的簡單使用

    Android kotlin+協(xié)程+Room數(shù)據(jù)庫的簡單使用

    這篇文章主要介紹了Android kotlin+協(xié)程+Room數(shù)據(jù)庫的簡單使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Android編程實現(xiàn)VideoView循環(huán)播放功能的方法

    Android編程實現(xiàn)VideoView循環(huán)播放功能的方法

    這篇文章主要介紹了Android編程實現(xiàn)VideoView循環(huán)播放功能的方法,結(jié)合簡單實例形式分析了Android使用VideoView實現(xiàn)多媒體播放功能的操作技巧,需要的朋友可以參考下
    2017-02-02
  • Android線程池控制并發(fā)數(shù)多線程下載

    Android線程池控制并發(fā)數(shù)多線程下載

    這篇文章主要為大家詳細介紹了Android線程池控制并發(fā)數(shù)多線程下載,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Android自定義圖片集合

    Android自定義圖片集合

    這篇文章主要為大家分享了內(nèi)容相當豐富的Android自定義圖片集合,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Android遠程獲取圖片并本地緩存

    Android遠程獲取圖片并本地緩存

    這篇文章主要介紹了Android遠程獲取圖片并本地緩存方法,對于遠程圖片等相對比較大的資源采用異步線程中去獲取本地做緩存,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Android開發(fā)Jetpack組件Room使用講解

    Android開發(fā)Jetpack組件Room使用講解

    Room是一個數(shù)據(jù)庫訪問組件; 對SqLite數(shù)據(jù)庫做了友好的封裝,使我們在編碼的時候,只需要注重邏輯的部分即可,數(shù)據(jù)庫就交給Room去流暢的訪問即可
    2022-08-08

最新評論