Có cách nào để tải chi tiết bài hát hiện tại được phát bởi MediaPlayer không?Cách tải chi tiết bài hát đang phát từ MediaPlayer
Trả lời
Không có documented method để nhận thông tin về tệp hiện đang phát từ phiên bản MediaPlayer, bạn sẽ cần phải làm cho ứng dụng lưu trữ thông tin đó theo cách khác. Nếu bạn đang sử dụng một Dịch vụ để theo dõi trường hợp MediaPlayer của bạn (mà tôi khuyên bạn nên) thì điều này không quá khó.
Hi Fredley, Cảm ơn bạn đã đề xuất của bạn. – Eby
Tôi có thể thấy nhiều tiện ích con hiển thị chi tiết bài hát như bạn thấy trong http://developer.android.com/guide/topics/appwidgets/index.html tiện ích con này. – Eby
Có. Và? Tiện ích âm nhạc được thiết kế để tích hợp với một trình phát nào đó và bạn không thể làm cho tiện ích của riêng mình dễ dàng tích hợp với trình phát đa phương tiện khác. – fredley
Tôi nghĩ rằng bạn cần phải có các lớp học mô hình của riêng bạn từ đó bạn có thể đặt và nhận tiêu đề bài hát của mình. Để biết thông tin này và các thông tin khác, hãy xem câu hỏi Stack Overflow:
How to set the PlayList Index for Mediaplayer(ExpressionMediaPlayer:Mediaplayer).
Nếu bạn muốn biết nó đang được triển khai như thế nào, bạn có thể lấy số source và xem cách chúng đã triển khai.
Chỉ cần để tham khảo, công trình này:
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);
}
};
}
Tôi không có bất kỳ đăng ký nào cho người phát sóng (sử dụng mã của bạn) và sau đó phát một MP3 với MediaPlayer - không có phát sóng nào được nhận! –
chỉ hoạt động với Google Play Âm nhạc. Làm thế nào tôi có thể nhận được thông tin cho người chơi khác trong khi chơi? –
Tôi đã học được làm thế nào để làm điều đó ngay bây giờ, vì vậy tôi không biết nếu nó hoạt động trên tất cả các phiên bản của Android được nêu ra.
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;
}
Câu hỏi OP là truy xuất chi tiết bài hát đang phát trong đối tượng MediaPlayer. Đây là một câu trả lời khác. –
- 1. Tải bài hát đang phát bằng cách sử dụng Cocoa
- 2. Android MediaPlayer - lỗi (1, -4) khi phát một bài hát
- 3. Lớp tải chi tiết Java đang tải
- 4. Phát hiện nhịp đập trong một bài hát
- 5. Làm cách nào để biết Thời lượng bài hát trước khi phát trực tiếp?
- 6. Hiển thị lời bài hát của bài hát MP3 trong Android
- 7. WP7 cách xếp hạng một bài hát
- 8. Tải chi tiết ứng dụng từ Google Play
- 9. Cách phát một bài hát từ thư viện itunes trong iphone
- 10. Tải bài hát từ Thư viện iPod ngay sau khi đồng bộ hóa
- 11. BÀI ĐĂNG BÀI HÁT luôn luôn trống
- 12. Bắt đầu Bài hát từ Mục tiêu Spotify
- 13. Lặp lại một bài hát trong một danh sách bài hát
- 14. chuyển tiếp nhanh bài hát bằng AVAudioPlayer
- 15. Sự cố khi phát bài hát trong trình phát Google Music
- 16. Cách phát hành Android MediaPlayer
- 17. Trình chọn bài hát cho Android
- 18. Lỗi chi tiết hơn từ createFileAtPath?
- 19. Trình phát nhạc Android không tái hiện sau khi thêm bài hát
- 20. Cách truy vấn các bài hát trong danh sách phát trên Android SDK?
- 21. Có chi tiết "cách" trên Bài kiểm tra Đơn vị cho Visual Studio 2005
- 22. Cách nhận chi tiết lỗi từ Trình xác thực JAXB?
- 23. Cách nhận thời lượng của bài hát trong JPlayer
- 24. Tìm nạp chi tiết người dùng từ Facebook trong iOS
- 25. Cách phát mp3 + g trên android mediaplayer
- 26. Sử dụng AVPlayer để phát các bài hát được bảo vệ bằng DRM
- 27. Android SeekBar setProgress đang khiến MediaPlayer của tôi bỏ qua
- 28. Android Cách nhận thông tin ID của một bài hát từ một URI biết
- 29. javaFX MediaPlayer getCurrentTime() không đáng tin cậy
- 30. Cách lấy backtrace chi tiết hơn
Ví dụ MediaPlayer của riêng bạn trong ứng dụng của bạn hoặc từ ứng dụng khác? – fredley