gpt4 book ai didi

android - 什么视频格式可以在所有 Android 设备上播放?

转载 作者:IT老高 更新时间:2023-10-28 22:21:59 35 4
gpt4 key购买 nike

Android可以播放variety of video formats ,但我需要选择一种适用于所有设备的格式。

是否所有 Android 2.3 设备都支持完全相同的格式?即如果格式将在模拟器中播放,这是否意味着它也会在所有硬件上播放?或者不同的设备是否支持不同的格式,这取决于它们所拥有的解码器芯片?

如果它们都相同,那么显然最好的格式是具有高比特率和分辨率的 H.264。如果不是,那么可以在 90% 的设备上播放的最佳编解码器/比特率/分辨率是多少? Google 是否提供某种方式来查询设备的视频功能并选择合适的格式?

最佳答案

在很多设备上测试后(对于一个非常流行的应用程序的视频闪屏)。我的建议是:

video codec : H.264 
file format: .mp4
video bitrate: 256kbps
video frame/second: 24

注意:我的视频没有声音!!

但即使有此建议,某些视频仍无法播放,因为它的分辨率。所以我创建了一个棘手的代码:我将所有密度的所有视频都嵌入到我的 raw 文件夹中,在我的 VideoView 中添加了一个 setOnErrorListener 并且我每次发生错误时尝试启动一个较小的视频。

这是我的原始文件夹:

raw/
splashmdpi.mp4
splashhdpi.mp4
splashxhdpi.mp4

这是我的java代码:

int densityoffset = 0;
VideoView video = new VideoView(this);

video.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
video.start();
}
}

video.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
densityoffset++;
String suff = getDensitySuffix(getContext(), densityoffset);
video.setVideoPath("android.resource://com.example.packagename/raw/splash"+suff);
if(offset>5)
return false;
else


return true;
}
});

String suff = getDensitySuffix(this,offset);
video.setVideoPath("android.resource://com.example.packagename/raw/splash"+suff);

private String suffix[]={"ldpi","mdpi","hdpi","xhdpi"};

/**
*Return the suffix concerning your device less offset value
**/
private String getDensitySuffix(Context ctx, int offset){
int dens = 2;
int d = getContext().getResources().getDisplayMetrics().densityDpi
if(d==DisplayMetrics.DENSITY_LOW)
dens = 0;
else
if(d==DisplayMetrics.DENSITY_MEDIUM)
dens = 1;
else
if(d==DisplayMetrics.DENSITY_HIGH))
dens = 2;
else
if(d==DisplayMetrics.DENSITY_XHIGH))
dens = 3;
return suffix[Math.max(0, dens-offset)];
}

关于android - 什么视频格式可以在所有 Android 设备上播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5097101/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com