Невозможно воспроизвести это видео. Android videoView mp4, записанный устройством Android

Введите описание изображения здесь

Я искал существующие потенциальные решения с другими formats и они все еще реагируют на указанную ошибку.

Наконец, записал видео с тем же устройством и использовал его в качестве ресурса для этого приложения, и он все еще не работает.

Устройства: SGS2 , lenovo a820

Тип видео: MPEG-4 video (video/mp4)

  videoView = (VideoView)findViewById(R.id.videoView); videoView.setVideoPath("android.resource://raw/sample.mp4"); videoView.start(); 

Solutions Collecting From Web of "Невозможно воспроизвести это видео. Android videoView mp4, записанный устройством Android"

Просто посмотрите мой ниже код, он работает … проблема в декларации pathe ..

  String uriPath = "android.resource://"+getPackageName()+"/"+R.raw.aha_hands_only_cpr_english; Uri uri = Uri.parse(uriPath); mVideoView.setVideoURI(uri); 

Это оно…

Попробуйте следующий код ..

 videoView = (VideoView)this.findViewById(R.id.videoView); String path = "android.resource://" + getPackageName() + "/" + R.raw.video_file; MediaController mc = new MediaController(this); videoView.setMediaController(mc); videoView.start(); 

Я попробовал все, что упоминалось ранее, но оказалось, что для воспроизведения файла mp4 требуется разрешение на интернет.

 <uses-permission android:name="android.permission.INTERNET" /> 

Для Lenovo a820 ниже требуется:

 - MP4/WMV/H.264/H.263 player - MP3/WAV/WMA/eAAC+ player 

Убедитесь, что ур-видео соответствует формату кодека.

 public class videoplayer extends Activity { private static final String Videos_URL = "*your URI*"; private VideoView myVideoView; private int position = 0; private ProgressDialog progressDialog; private MediaController mediaControls; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the layout from video_main.xml setContentView(R.layout.activity_main); if (mediaControls == null) { mediaControls = new MediaController(this); } // Find your VideoView in your video_main.xml layout myVideoView = (VideoView) findViewById(R.id.videoView); // Create a progressbar progressDialog = new ProgressDialog(this); // Set progressbar title progressDialog.setTitle("ABCDEFGH"); // Set progressbar message progressDialog.setMessage("Loading..."); progressDialog.setCancelable(false); // Show progressbar progressDialog.show(); try { Uri video = Uri.parse(Videos_URL); myVideoView.setVideoURI(video); myVideoView.setMediaController(mediaControls); } catch (Exception e) { Log.e("Error", e.getMessage()); e.printStackTrace(); } myVideoView.requestFocus(); myVideoView.setOnPreparedListener(new OnPreparedListener() { // Close the progress bar and play the video public void onPrepared(MediaPlayer mp) { progressDialog.dismiss(); myVideoView.seekTo(position); if (position == 0) { myVideoView.start(); } else { myVideoView.pause(); } } }); } @Override public void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); savedInstanceState.putInt("Position", myVideoView.getCurrentPosition()); myVideoView.pause(); } @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); position = savedInstanceState.getInt("Position"); myVideoView.seekTo(position); } } 

Убедитесь, что декодер (целевой SDK) поддерживает формат видео, который вы используете. Вы можете использовать VLC Player для преобразования видеоформата в желаемый. В моем случае я преобразовал MP4 в файл WebM и загрузил его в VideoView.

Вот как вы получаете путь к файлу и воспроизводите свое видео.

 String path = "android.resource://" + getPackageName() + "/" + R.raw.sample; VideoView videoView = (VideoView)findViewById(R.id.videoView); videoView.setVideoURI(Uri.parse(path)); videoView.start() 

Источник: формат видео и поддержка кодеков https://developer.android.com/guide/topics/media/media-formats.html