有什么方法可以获取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. 在线获取在线广播歌曲的详细信息
- 3. 从iPhone的音乐库中获取歌曲的详细信息
- 4. 如何从Google API获取当前用户的详细信息
- 5. MPMoviePlayerController当前正在播放的项目详细信息?
- 6. 如何获取phpFox网站的当前用户详细信息?
- 7. 如何在twitter中获取当前用户的详细信息
- 8. 如何获取在jPlayer中播放歌曲的当前时间?
- 9. 如何使用Python获取Rhythmbox中当前播放的歌曲
- 10. 如何从iTunes获取歌曲信息?
- 11. 获取新的谷歌登录的人的详细信息播放服务8.3
- 12. 从spotify使用libspotify获取当前正在播放的歌曲
- 13. 获取Android媒体播放器中播放的当前媒体文件的详细信息
- 14. Ruby on Rails的:获取媒体播放器的信息(如iTunes,TRAKTOR,COG;当前歌曲+播放列表)
- 15. mediaPlayer CompletionListener在完成歌曲之前播放下一首歌曲
- 16. 从Spotify iOS应用获取当前播放歌曲
- 17. Google Cast:从音频设备获取当前播放歌曲
- 18. 获取Facebook详细信息
- 19. 如何获取方法详细信息?
- 20. 如何获取异常详细信息
- 21. 如何停止当前播放的歌曲并播放下一首歌曲?
- 22. 获取当前打开的详细信息页实例的ID
- 23. 从网上收音机/电视获取当前歌曲信息
- 24. 获取当前位置的提供者详细信息在iPhone
- 25. 通过Passport获取当前用户的详细信息js
- 26. WPF - 获取当前单元格的详细信息
- 27. 如何从其他音乐播放器的当前播放曲目获取歌曲时长
- 28. 从google地方获取详细信息
- 29. 从ActivatedRouteSnapshot获取路线详细信息
- 30. 从照片中获取详细信息
您的应用程序或其他应用程序中的MediaPlayer实例? – fredley 2010-09-01 10:25:10