0

每当我运行代码时,它对于名称中没有空格的歌曲都可以正常工作

检查这行代码:metaRetriver.setDataSource("/storage/emulated/0/song.mp3");这是一个没有空格的 MP3 文件(song.mp3)

但是,每当我更改名称中有空格的歌曲时,它都会抛出IllegalArgumentException这一行metaRetriver.setDataSource("/storage/emulated/0/Bom Diggy Diggy.mp3");

Ofcource 我不能重命名每个文件以删除其中的空格。

这是我的代码,

public class MainActivity extends AppCompatActivity {

MediaMetadataRetriever metaRetriver;
byte[] art;
ImageView album_art;

Bitmap songImage;

String thePath;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getInit();

    metaRetriver = new MediaMetadataRetriever();
    metaRetriver.setDataSource("/storage/emulated/0/"+ URLEncoder.encode("Bom Diggy Diggy.mp3"));


    art = metaRetriver.getEmbeddedPicture();

    if (art != null) {
        songImage = BitmapFactory
                .decodeByteArray(art, 0, art.length);
        album_art.setImageBitmap(songImage);
    } else {
        String error = "art is null";
        Log.i("lolol", error);
    }

    }

    public void getInit () {

        album_art = (ImageView) findViewById(R.id.album_art);

    }
}`

谁能帮我解决这个问题

4

1 回答 1

0

您可以使用 Glide 库从音频文件中获取专辑封面。通过创建 AudioModule。

于 2018-05-22T11:34:20.107 回答