Tôi biết cách truy xuất thể loại của một bài hát cụ thể, (xem getting the genres), nhưng tôi muốn truy xuất tất cả các bài hát thuộc một thể loại cụ thể. Vì "thể loại" dường như không phải là một trong các cột cho mục phương tiện, tôi không biết cách thực hiện trong một truy vấn, không giống như nghệ sĩ hoặc album. Có phương pháp hiệu quả nào không? Thanx!Android Mediastore: Làm cách nào để truy xuất hiệu quả tất cả các bài hát của một thể loại nhất định?
Trả lời
Bạn có thể thực hiện việc này bằng cách đặt cùng một URI nội dung và truy vấn MediaStore. Dưới đây là một số mã mượn từ máy nghe nhạc Android:
String [] cols = new String [] {MediaStore.Audio.Genres.NAME};
Cursor cursor = MusicUtils.query(this,
ContentUris.withAppendedId(MediaStore.Audio.Genres.EXTERNAL_CONTENT_URI, Long.valueOf(mGenre)),
cols, null, null, null);
Đây là mã trong MusicUtils:
public static Cursor query(Context context, Uri uri, String[] projection,
String selection, String[] selectionArgs, String sortOrder, int limit) {
try {
ContentResolver resolver = context.getContentResolver();
if (resolver == null) {
return null;
}
if (limit > 0) {
uri = uri.buildUpon().appendQueryParameter("limit", "" + limit).build();
}
return resolver.query(uri, projection, selection, selectionArgs, sortOrder);
} catch (UnsupportedOperationException ex) {
ErrorReporter.getInstance().putCustomData("UnsupportedOperationException", "true");
return null;
}
}
Uri uri = Audio.Genres.Members.getContentUri("external", genreID);
String[] projection = new String[]{Audio.Media.TITLE, Audio.Media._ID};
Cursor cur = contentResolver.query(uri, projection, null, null, null);
Bạn có thể thêm một số văn bản giải thích những gì bạn đã làm ở đây có lẽ không? – Flexo
Audio.Genres.Members.getContentUri ("external", genreID) làm cho uri, như (nội dung: // media/external/audio/genres/2/members) nơi "external" có nghĩa là chúng ta sẽ tìm kiếm thông qua nội dung bên ngoài, và "2" là ID thể loại. ContentResolver.query (...) truy vấn uri đã cho và trả về một Con trỏ trên tập kết quả. –
@AlexanderMikhalevich bạn có thể giúp tôi cho http://stackoverflow.com/questions/25235127/cleanest-method-to-play-songs-from-album-artist-genre-in-android –
- 1. Truy vấn SQL để trích xuất tất cả các bài đăng trên WordPress với các loại
- 2. bài hát Query của một album với CursorLoader
- 3. Tôi làm cách nào để có thể truy xuất tất cả các bài đăng từ blog Blogger (blogspot.com)?
- 4. Làm thế nào để loại trừ tất cả các bài kiểm tra JUnit4 với một thể loại nhất định bằng cách sử dụng Maven chắc chắn?
- 5. Cách hiệu quả để tải tất cả các số liên lạc và tất cả các số điện thoại (Android 2.0)
- 6. Hiển thị lời bài hát của bài hát MP3 trong Android
- 7. Truy cập vào tất cả các hạt đậu mùa xuân thuộc một loại nhất định
- 8. Làm cách nào tôi có thể định vị một loại cụ thể trong một Assembly * một cách hiệu quả *?
- 9. Cách tìm tất cả các tệp có phần mở rộng nhất định trên Android?
- 10. Tôi làm cách nào để làm mới MediaStore trên Android?
- 11. Làm cách nào để tôi vá tất cả tài liệu của một loại nhất định trong RavenDB?
- 12. Cách truy vấn các bài hát trong danh sách phát trên Android SDK?
- 13. Cách hiệu quả nhất để lưu trữ/truy xuất các mục trong asp.net httpContext.Cache
- 14. Làm cách nào để truy xuất tất cả các trường có thể áp dụng cho tìm kiếm Solr
- 15. Làm cách nào để tìm tất cả các tập hợp con có thể có của một mảng nhất định?
- 16. Android Cách nhận thông tin ID của một bài hát từ một URI biết
- 17. Làm cách nào để có được tất cả các phiên bản của tất cả các loại được tải thực hiện một giao diện nhất định?
- 18. Tôi làm cách nào để tạo bộ lọc nội dung hiệu quả cho một số bài đăng nhất định?
- 19. Cách hiệu quả nhất để đếm tất cả các lần xuất hiện của một ký tự cụ thể trong chuỗi PHP là gì?
- 20. Làm cách nào để chạy một phương thức trước tất cả các bài kiểm tra trong tất cả các lớp?
- 21. Làm cách nào tôi có thể truy xuất tất cả các mục từ kết quả được phân trang của truy vấn DynamoDBMapper()?
- 22. Làm thế nào để loại bỏ hiệu quả tất cả các hàng từ một bảng trong DB2
- 23. SPARQL: Nhận tất cả các thực thể của các lớp con của một lớp nhất định
- 24. WP7 cách xếp hạng một bài hát
- 25. Loại bỏ tất cả các mục của một giá trị nhất định từ một hashmap
- 26. Cách hiệu quả nhất để xóa tất cả các hàng trùng lặp khỏi bảng?
- 27. Cách xem/tải tất cả các bài đăng trên tường của một trang Facebook cụ thể
- 28. Lặp lại một bài hát trong một danh sách bài hát
- 29. Làm cách nào để buộc phần tử âm thanh HTML5 đệm toàn bộ một bài hát?
- 30. Làm cách nào để xóa tất cả các thẻ sau một số thẻ nhất định?
Trừ khi danh sách nhạc là khổng lồ (30k bài hát +), tôi không nghĩ rằng bạn sẽ phải chịu đựng nhiều hình phạt về hiệu suất bằng cách chỉ nhận được tất cả các bài hát, sau đó kiểm tra thể loại đó và thêm đúng vào danh sách. – AedonEtLIRA
Tôi có 2K bài hát và phải mất nhiều thời gian để muốn đưa ra một hộp thoại tiến bộ, ngay cả trên Samsung Charge nhanh vừa phải của tôi. Nó là rất chậm trên máy tính bảng giá rẻ 600MHz của tôi (vì một lý do nào đó, nhiều hơn gấp đôi). Đó là những gì tôi sẽ làm nếu cần thiết, nhưng tôi đã hy vọng có một mẹo tôi đang mất tích. – MBro