我正在使用MediaPlayer为我的 Android 应用播放.mp4视频。
在我的代码中我有 minimumSDK API16 ,所以当我测试我的应用时,视频正在我测试过的真实设备上播放(三星galaxy S7,Note 3,AcerT01,Nexus 5) )但不幸的是我没有任何旧设备来测试它(Jelly Bean)。
当我使用 Nexus 5,Nexus 6,Nexus ONE 在模拟器上测试时,视频加载成功,但当我在较小的屏幕上测试 2.7“QVGA_API22 < / em> 模拟器没有加载视频,我收到了消息: 无法播放此视频 ,我也检查了< em> Logcat ,我收到以下错误:
E / WindowManager:android.view.WindowLeaked:Activity AnimationScreenActivity已泄露窗口 com.android.internal.policy.impl.PhoneWindow $ {DecorView 2c8dbe92 V.E ..... R ...... D 0,0-240,108}
所以我的问题是它只是一个模拟器问题,还是Android Media Player和屏幕尺寸有问题?
编辑:
以下是我的代码的一部分:
VideoView videoHolder = (VideoView) findViewById(R.id.videoView1);
Uri video = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.introphonescreen);
videoHolder.setVideoURI(video);
videoHolder.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
jump();
}
});
private void jump() {
new Thread() {
@Override
public void run() {
synchronized (MainActivity.SPLASH_LOCK) {
// wait for notify or time-out
try {
MainActivity.SPLASH_LOCK.wait(MAX_SPLASH_TIME);
} catch (InterruptedException ignored) {}
}
finish();
}
}.start();
}