有什麼方法可以獲取MediaPlayer播放的當前歌曲的詳細信息?如何從MediaPlayer獲取當前播放歌曲的詳細信息
回答
沒有documented method從MediaPlayer實例獲取當前播放文件的信息,您需要讓應用程序以另一種方式存儲該信息。如果您使用服務來跟蹤您的MediaPlayer實例(我建議),那麼這應該不會太難。
我認爲你需要有你自己的模型班,從中你可以設置和獲得你的歌曲標題。有關此信息和其他信息,請參閱堆棧溢出問題:
How to set the PlayList Index for Mediaplayer(ExpressionMediaPlayer:Mediaplayer)。
如果你想知道它是如何實現的,你可以得到source並看看它們是如何實現的。
僅作參考,這個工程:
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
public class MediaPlayer extends Activity {
public static final String SERVICECMD = "com.android.music.musicservicecommand";
public static final String CMDNAME = "command";
public static final String CMDTOGGLEPAUSE = "togglepause";
public static final String CMDSTOP = "stop";
public static final String CMDPAUSE = "pause";
public static final String CMDPREVIOUS = "previous";
public static final String CMDNEXT = "next";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
IntentFilter iF = new IntentFilter();
iF.addAction("com.android.music.metachanged");
iF.addAction("com.android.music.playstatechanged");
iF.addAction("com.android.music.playbackcomplete");
iF.addAction("com.android.music.queuechanged");
registerReceiver(mReceiver, iF);
}
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
String cmd = intent.getStringExtra("command");
Log.d("mIntentReceiver.onReceive ", action + "/" + cmd);
String artist = intent.getStringExtra("artist");
String album = intent.getStringExtra("album");
String track = intent.getStringExtra("track");
Log.d("Music",artist+":"+album+":"+track);
}
};
}
我沒有任何運氣註冊廣播接收器(使用您的代碼),然後播放帶MediaPlayer的MP3 - 沒有收到廣播! – 2013-11-17 23:19:43
只適用於谷歌播放音樂。我如何在玩遊戲時獲得其他玩家的信息? – 2013-12-18 09:52:02
我學會了如何做到這一點剛纔,所以我不知道這是否適用於Android的所有版本呢。
private void getTrackInfo(Uri audioFileUri) {
MediaMetadataRetriever metaRetriever= new MediaMetadataRetriever();
metaRetriever.setDataSource(getRealPathFromURI(audioFileUri));
String artist = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
String title = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
}
private String getRealPathFromURI(Uri uri) {
File myFile = new File(uri.getPath().toString());
String s = myFile.getAbsolutePath();
return s;
}
OP的問題是檢索MediaPlayer對象中播放的歌曲細節。這是一個不同的答案。 – 2015-06-10 09:09:36
- 1. 獲取Android中媒體播放器播放的當前歌曲的詳細信息
- 2. 從iPhone的音樂庫中獲取歌曲的詳細信息
- 3. MPMoviePlayerController當前正在播放的項目詳細信息?
- 4. 如何獲取phpFox網站的當前用戶詳細信息?
- 5. 如何在twitter中獲取當前用戶的詳細信息
- 6. 如何使用Python獲取Rhythmbox中當前播放的歌曲
- 7. 獲取新的谷歌登錄的人的詳細信息播放服務8.3
- 8. 如何從iTunes獲取歌曲信息?
- 9. 獲取Android媒體播放器中播放的當前媒體文件的詳細信息
- 10. Ruby on Rails的:獲取媒體播放器的信息(如iTunes,TRAKTOR,COG;當前歌曲+播放列表)
- 11. Google Cast:從音頻設備獲取當前播放歌曲
- 12. 獲取Facebook詳細信息
- 13. 如何停止當前播放的歌曲並播放下一首歌曲?
- 14. 如何獲取異常詳細信息
- 15. 獲取當前打開的詳細信息頁實例的ID
- 16. 如何從其他音樂播放器的當前播放曲目獲取歌曲時長
- 17. 通過Passport獲取當前用戶的詳細信息js
- 18. 獲取當前位置的提供者詳細信息在iPhone
- 19. 從ActivatedRouteSnapshot獲取路線詳細信息
- 20. 從log.nsf獲取用戶詳細信息
- 21. 從MGTwitterEngine獲取用戶詳細信息
- 22. 從照片中獲取詳細信息
- 23. 從貝寶獲取詳細信息?
- 24. C#從子類獲取詳細信息
- 25. 從Microsoft Groove Music應用程序獲取當前播放曲目信息
- 26. 在iTunes中獲取當前播放的歌曲
- 27. 獲取當前播放的歌曲標題和藝術家
- 28. Swift IOS:獲取當前播放歌曲的標題
- 29. 從iTunes獲取播客詳細信息url
- 30. 當前用戶登錄詳細信息
您的應用程序或其他應用程序中的MediaPlayer實例? – fredley 2010-09-01 10:25:10