1

我尝试MediaMetadataRetriever与 Kotlin一起使用use

MediaMetadataRetriever().apply {
    setDataSource(context, uri)
}.use {
    ...
}

但它在 Android 6 Marshmallow (23 API) 上给了我一个错误:

java.lang.ClassCastException: android.media.MediaMetadataRetriever 不能转换为 java.lang.AutoCloseable

为什么这样?

4

2 回答 2

5

MediaMetadataRetrieverAutoCloseable 从 API 级别 29 开始实现。

于 2020-12-21T19:39:57.853 回答
0

Android 是开源项目,您可以查看每个版本的源代码。好像不久前开始实施 AutoClosable

API 28:

public class MediaMetadataRetriever
{

API 30

public class MediaMetadataRetriever implements AutoCloseable {
于 2020-12-21T19:43:37.590 回答