我的 Android 应用程序有大量远程托管的媒体文件(通过 AWS),其中一些包含嵌入式艺术品。在播放任何这些音频媒体时,我希望使用我的默认插图(在没有嵌入插图时使用)。 我试过了
app:use_artwork="false"
app:default_artwork="@drawable/backgroundimage"
但与 Javadocs 似乎暗示的结果相反,我当然只是得到一个黑色背景。 (use_artwork="false"似乎真的意味着“不使用艺术作品”——而 Javadocs 暗示更多的意思是“不使用嵌入式 ID3 艺术作品”)
没有下载数 GB 的媒体文件并对它们进行批量操作(这是一个问题,因为文件通常是动态添加的),是否有一种解决方案可以抑制嵌入的艺术作品并使用我的背景?
四处寻找,我找到了 https://github.com/mpatric/mp3agic ,但这里的问题是文件是通过 Exoplayer 流式传输的,而不是下载供我以编程方式操作。
最佳答案
在浏览了一些 Exoplayer 源代码之后,这就是我的想法。这不是绝对理想,因为嵌入图像在被替换之前会快速闪烁,但我认为这只是移动逻辑以找到最佳位置的问题。
我删除了
app:use_artwork="false"
来 self 的 activity_main.xml
在我的 BroadcastReceiver 中,在“trackChanged”事件发生时, 我添加了这个(类似于 Exoplayer 库本身内部所做的):
Bitmap artWork = BitmapFactory.decodeResource(getResources(), R.drawable.backgroundimage);
ImageView aw = (ImageView) findViewById(R.id.exo_artwork);
aw.setImageBitmap(artWork);
aw.setVisibility(View.VISIBLE);
关于android - 使用 Exoplayer2,如何始终使用默认插图(即使音频嵌入了插图?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58160059/