我对视频文件使用的原始格式使其不适用于任何设备,因此我通过ffmpeg对其进行了运行,以将其转换为更兼容的类型。现在,它可以在大多数设备上运行,但是仍然有一些错误提示“无法播放此文件”
我用来转换它的命令是:
ffmpeg -i <INPUT_VIDEO> -c:v libx264 -profile:v baseline -c:a aac -ar 44100 -ac 2 -b:a 128k -movflags faststart output.mp4
我可以使用更好的转换参数使它在所有设备上通用吗? (我知道480x360 h264适用于所有设备,但我不想放弃视频质量)
在某些设备上可以使用的代码:
public class SplashActivity extends AppCompatActivity {
VideoView videoView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
videoView = (VideoView) findViewById(R.id.video_view);
Uri video = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.splashv4);
videoView.setVideoURI(video);
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
startNextActivity();
}
});
videoView.start();
}
private void startNextActivity() {
if (isFinishing())
return;
startActivity(new Intent(this, LoginActivity.class));
finish();
}
}
答案 0 :(得分:0)
我会考虑使用WEBM格式而不是MP4。 WebM可以在我遇到的每台Android设备中播放。
答案 1 :(得分:0)
如果还没有,请查看recommended media formats。如果解决该问题,则可以在480 * 360中创建另一个文件。可以肯定地说,无法播放高清视频的设备的屏幕可能较小。将setOnErrorListener
添加到VideoView
中,如果第一次尝试失败,请尝试以较小的分辨率再次播放视频。在true
中返回OnErrorListener
,以摆脱Can't play this video
对话框。
编辑
我也建议再次检查URI。根据{{3}},使用android.resource://
不是一个好主意。