欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門(mén)教程網(wǎng)!

Android

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

android實(shí)現(xiàn)簡(jiǎn)單音樂(lè) 器

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:Android|點(diǎn)擊: 次

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

話不多說(shuō)先上效果

前言

寫(xiě)這個(gè)音樂(lè) 器實(shí)在是迫不得已。因?yàn)槲覀?span style="color: #800000">Andoird課程要求寫(xiě)一個(gè)音樂(lè) 器。所以就有了此項(xiàng)目。這個(gè)項(xiàng)目比較簡(jiǎn)單,實(shí)現(xiàn)了最基本的音樂(lè) 功能,然后界面是仿照著網(wǎng)易云音樂(lè)的樣式,寫(xiě)的想寫(xiě)成一樣但是技術(shù)不夠。

基本的音樂(lè)

設(shè)置 音樂(lè)文件

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

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

音樂(lè)

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

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

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

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

獲取音樂(lè)的信息

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

private static final MediaMetadataRetriever mmr = new MediaMetadataRetriever();
public static Song getSong(String path){
  Song song = new Song();// 自己定義的歌曲類(lèi)
  song.setPath(path);
  // 獲取音樂(lè)相關(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);
  // 歌曲長(zhǎng)度(時(shí)間長(zhǎng)度 單位 mm)
  int duration = Integer.parseInt(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)); //       時(shí)長(zhǎng)單位為毫秒 
  song.setDuration(duration);
  // 歌曲的圖片
  byte[] image = mmr.getEmbeddedPicture();// 圖片,可以通過(guò)BitmapFactory.decodeByteArray轉(zhuǎn)換為bitmap圖片
//  BitmapFactory.decodeByteArray(image, 0, image.length);
  song.setImage(image);
  return song;
 }

其他功能

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

github代碼倉(cāng)庫(kù)

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

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

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

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

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