如何避免音频播放器中不支持的格式

时间:2017-04-01 06:12:41

标签: android android-mediaplayer

我正在创建一个音频播放器,我正在使用此代码获取所有歌曲

[0,1,2,3]

这让我听到了歌曲,但我也得到了不支持格式的音频。如.wav任何想法如何避免不支持的格式

1 个答案:

答案 0 :(得分:0)

您可以使用MimeType执行此操作。请参阅下面的示例代码,了解如何为mp3完成。

ContentResolver contentResolver = context.getContentResolver();
Uri uri = MediaStore.Files.getContentUri("external");
String[] projection = null;
String sortOrder = null;
String selectionMimeType = MediaStore.Files.FileColumns.MIME_TYPE + "=?";
String mimeType = imeTypeMap.getSingleton().getMimeTypeFromExtension("mp3"); 
String[] selectionArgsMp3 = new String[]{ mimeType };
Cursor mp3Songs = contentResolver.query(uri, projection,selectionMimeType,selectionArgsmp3, sortOrder);

您可以检查的另一种方法是在打开/播放应用程序时使用以下代码在设备上安装任何兼容的应用程序。

private void openRelevantFileHandler(String pathToMusicFile)
{
    String extension = MimeTypeMap.getFileExtensionFromUrl(pathToMusicFile);
    String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.parse("file://" + pathToMusicFile), type);

    PackageManager packageManager = context.getPackageManager();
    List activities = packageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL);
    boolean isIntentSafe = activities.size() > 0;
    if (!isIntentSafe) {
        Utility.showToast(context, "No application available on your device to open this type of file.");
    }
    else 
    {
        context.startActivity(intent);//Start related application
    }
}

希望这会以某种方式帮助你:)