有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java检查安卓设备是否支持4K视频?

我试图在我的应用程序中播放4K视频,但只要所有设备都不能播放4K视频,我就会遇到一些问题

  • 在播放视频之前,我如何在运行时检查该设备是否支持它

共 (2) 个答案

  1. # 1 楼答案

    首先,你必须记住4k只是一个分辨率,但你也必须记住比特率

    下面是一种测试分辨率/比特率组合是否可以在特定设备上实现的方法:

    boolean areSizeAndRateSupported (int width, int height, double frameRate)
    

    https://developer.android.com/reference/android/media/MediaCodecInfo.VideoCapabilities.html#areSizeAndRateSupported(int,%20int,%20double)

    还有:

    isSizeSupported(int width, int height)
    

    这些方法唯一的缺点是它受到API级别21的支持

    您还可以使用以下方法检查编解码器功能:

    MediaCodecInfo.VideoCapabilities.getVideoCapabilities()
    

    https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities.html#getVideoCapabilities()

    但据我所知,它们的分辨率可能低于实际支持的分辨率

    另一方面,在你的情况下,android lollipop下面的设备很可能不够快,无法播放4k视频。或者,即使可以,它们的分辨率也太低,无法从4k分辨率中获得任何好处

    因此,在我看来,最优雅的解决方案是假设4k在android 5.0以下不受支持,并使用上面的方法检查是否在android 5.0+上受支持