Вот мой код для полноэкранного видео. Он отлично работает в эмуляторе, но не в реальном телефоне Android.
public void videoClick(View view){
Intent mIntent = new Intent(getBaseContext(),VideoFullscreenActivity.class);
videoUri = Uri.parse("android.resource://tk.myessentialoils.ideasapp/raw/"+ contentStringList[count][2]);
mIntent.putExtra("videoUri",videoUri);
startActivity(mIntent);
}
Я думаю, что проблема Uri. У Xiaomi Android URI отличается от других. Некоторые телефоны Huawei также не работают.
Есть ли альтернатива получить файл вместо этого?
Возможно, это будет работать на всех версиях android.
Изменить 1
согласно предложениям Вивека Мишры,
попробовал ниже
Intent mIntent = new Intent(getBaseContext(),VideoFullscreenActivity.class);
String path = "file:///android_asset/"+ contentStringList[count][2];
videoUri = Uri.parse(path);
mIntent.putExtra("videoUri",videoUri);
startActivity(mIntent);
Однако я получил эту ошибку >> Не могу воспроизвести это видео
в соответствии с папкой ресурсов Как загрузить видео из папки с ресурсами? (чтобы воспроизвести их с помощью VideoView) не может воспроизводить видео
Редактировать 2 тот же вопрос, что и Nullpointerexception, я не могу заставить медиаплеер работать с моим кодом.
Uri videoUri = getIntent().getParcelableExtra("videoUri");
VideoView videoView=findViewById(R.id.myvideoview);
videoView.setVideoURI(videoUri);
//videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.full));
MediaController mediaController = new MediaController(this);
videoView.setMediaController(mediaController);
videoView.start();
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true);
}
});
как мне реализовать приведенный ниже код в моем коде выше.
AssetFileDescriptor afd;
try {
afd = getAssets().openFd("v.mp4");
player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),
afd.getLength());
player.prepareAsync();
player.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
} catch (Exception e) { e.printStackTrace();}
Спасибо, Мишра, я попробую эту папку с активами. Вы нашли способ, который будет работать во всех версиях Android?
Так как я работал над демо-проектом, я не особо старался
все нормально спасибо большое
@Vivek Mishra Можете взглянуть на редактирование 1, что не так?
Вы пробовали следующий ответ с 5 голосами за эту ссылку?
@VivekMishra Я не могу заставить его работать, вы можете мне показать?
Вместо сырого поместите его в папку с ресурсами. Вчера я пробовал то же самое, но из необработанной папки он, похоже, не работает на устройствах huwaei. Также измените свой uri в соответствии с папкой ресурсов.