雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

Android

當(dāng)前位置:主頁 > 軟件編程 > Android >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:Android|點擊:

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

話不多說先上效果

前言

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

基本的音樂播放

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

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

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

播放音樂

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

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

了解了上面的方法后那么就可以實現(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)的。所以就不詳細(xì)介紹直接貼代碼吧。

github代碼倉庫

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

上一篇:Android倒計時功能的實現(xiàn)代碼

欄    目:Android

下一篇:Android 自定義ListView實現(xiàn)QQ空間界面(說說內(nèi)包含圖片、視頻、點贊、評論、轉(zhuǎn)發(fā)功能)

本文標(biāo)題:android實現(xiàn)簡單音樂播放器

本文地址:http://www.jygsgssxh.com/a1/Android/8975.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有