Intereting Posts
Проблема импорта проекта cordova в Eclipse (ADT) Android EditText в TableLayout убегает Прикладной поток приложений для Android Почему мое приложение начинает невероятно медленно (10 с +) при первом запуске, показывая только белый экран на Android 5.0? KSoap2 Android недействителен SOAP Как получить данные из нескольких таблиц / классов Parse.com Удаление данных из намерения уведомления Как сделать пункт меню поиска для полного просмотра в панели действий, используя абс Запись, сохранение и воспроизведение видео в Android Как получить контрольную точку в собственном коде NDK и отладить собственный код в Android Studio? Использование результата учетной записи andMan AccountManager.getAuthToken через Zend_Gdata (401 несанкционированного доступа) Заставка отображает при изменении размера окна с помощью WindowManager Как вручную вводить логин и выход из системы с помощью кнопки без использования <com.facebook.widget.LoginButton />? Можно ли использовать так много устаревших методов в обратном коде? Ошибка сборки: Jack требует Build Tools 24.0.0 или новее

Android VideoView не может воспроизводить видео mp4

Я использовал Android VideoView для воспроизведения видеофайлов через HTTP. Моя проблема – это мои телефонные подсказки «Невозможно воспроизвести видео Извините, это видео невозможно воспроизвести». При воспроизведении файла mp4 из HTTP. Но это нормально при воспроизведении другого видеофайла mp4.

При использовании на более новом телефоне, таком как Samsung Galaxy S, моя программа может успешно воспроизводить видеофайлы mp4 из HTTP.

Мой телефон:

Samsung GT-S5830 Android version: 2.3.4 Display: 320x480. Video file 1 (OK): Video Codec: H.264 Resolution: 640x360 Others: 16:9, 340kbps, 29.92fps Audio Codec: AAC, 44kHz 96kbps Stereo. Video file 2 (Fail): Video Codec: H.264 Resolution: 640x360 Others: 16:9, 993kbps, 25fps Audio Codec: AAC 44kHz 125kbps Stereo. 

Ниже мой код, который жестко запрограммирован для воспроизведения видеофайла 1 успешно.

 public class VideoPlayActivity extends Activity { VideoView vv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //requestWindowFeature(Window.FEATURE_NO_TITLE); //getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); vv = new VideoView(this); RelativeLayout.LayoutParams param1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT); param1.addRule(RelativeLayout.CENTER_IN_PARENT); vv.setOnErrorListener(new OnErrorListener() { public boolean onError(MediaPlayer mp, int what, int extra) { Log.d("Dbg", "OnErrorListener: onError: " + what + ", " + extra); return false; } }); RelativeLayout layout = new RelativeLayout(this); layout.addView(vv, param1); setContentView(layout); playContent(); } private void playContent() { String path = "http://rmcdn.2mdn.net/MotifFiles/html/1248596/android_1330378998288.mp4"; vv.setVideoPath(path); vv.requestFocus(); vv.start(); } } 

Журнал ошибок при воспроизведении видеофайла 2 выглядит так:

 11-19 17:49:30.119: I/VideoView(16860): start() 11-19 17:49:30.139: E/MediaPlayer(16860): error (1, -2147483648) 11-19 17:49:30.149: E/MediaPlayer(16860): Error (1,-2147483648) 11-19 17:49:30.149: D/VideoView(16860): Error: 1,-2147483648 11-19 17:49:30.149: D/Dbg(16860): OnErrorListener: onError: 1, -2147483648 

Отмечается, что я попытался установить плеер MX и загрузить оба видеофайла в SD-карту своего телефона. Игрок MX может успешно воспроизводить оба видеофайла.

Итак, может ли кто-нибудь помочь мне ответить на следующие вопросы:

  1. Почему моя программа не может воспроизводить видеофайл 2 на моем телефоне?
  2. Как я могу воспроизвести видеофайл 2 на своем телефоне?

Спасибо за ваш совет.

Спасибо за ответ от ошибки Android MediaPlayer (1, -2147483648) .

Я обнаружил, что видеофайл 2 был закодирован в основном профиле H.264, что мой мобильный телефон не может быть воспроизведен. Поддерживаемый форматом носителей Android предлагает H.264 в профиле базовой линии. Поэтому, после преобразования видео в Baseline Profile, его можно воспроизводить на моем телефоне.