Tag: mediametadataretriever

如何将MediaMetadataRetriever SetDataSource用于外部存储中的文件

我正在尝试从MP3文件中提取专辑封面但是我无法给出合适的歌曲位置,我可以将其赋予SetDataSource方法。 我尝试了一切,但它仍然给我错误IllegalArgumentException 。 这一切都发生在这行metaRetriver.setDataSource(MainActivity.this, Uri.parse(“/sdcard/song.mp3”)); 被执行 我的代码。 public class MainActivity extends AppCompatActivity { MediaMetadataRetriever metaRetriver; byte[] art; ImageView album_art; Bitmap songImage; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getInit(); metaRetriver = new MediaMetadataRetriever(); metaRetriver.setDataSource(MainActivity.this, Uri.parse(“/sdcard/song.mp3”)); art = metaRetriver.getEmbeddedPicture(); if (art != null) { songImage = BitmapFactory .decodeByteArray(art, 0, art.length); album_art.setImageBitmap(songImage); } else { String […]

MediaMetaDataRetriever.setDataSource返回null

我正在尝试开发一个应用程序( 无线电流 )应用程序,我想获取该MediaMetadataRetriever API的无线电上播放的歌曲的详细信息,但是当我设置我的URL时,我收到此错误: java.lang.IllegalArgumentException位于maa.myapp.MainActivity $ PlayerTask.onPostExecute(MainActivity.java:447)上的android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:71)maa.myapp.MainActivity $ PlayerTask.onPostExecute(MainActivity。 Java的:419) 我的代码: MediaPlayer mediaPlayer; String stream = “https://plaza.one/mp3”; boolean prepared =false; boolean started =false ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mediaPlayer = new MediaPlayer(); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { AudioAttributes attribs = new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA).setContentType(AudioAttributes.CONTENT_TYPE_MUSIC).build(); mediaPlayer.setAudioAttributes(attribs); } else { mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); } new PlayerTask().execute(stream); } […]