не работает медиаплеер Android

#android #android-mediaplayer #android-videoview

#Android #android-медиаплеер #android-видеообзор

Вопрос:

Я пытаюсь разработать приложение, в которое встроено много видеороликов, и я хотел бы вызвать медиаплеер Android с объектом video on VideoView. Однако я получаю эти странные ошибки:

  • I / MediaPlayer(2874): Информация (1,26)
  • E /MediaPlayer(2874): ошибка (-4,-4)
  • D / VideoView (2874): Ошибка: -4,-4

когда я пытаюсь воспроизвести видео mp4 или другое видео в формате 3gp, которое не записано с моего телефона. Мой код выглядит примерно так:

 import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.MediaController;
import android.widget.VideoView;

public class PlayTest2 extends Activity{
private MediaController ctlr;
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test2);

    try {
        VideoView video = (VideoView) findViewById(R.id.test2);
        // Load and start the movie
                video.setVideoPath("android.resource://com.example.child.protector/raw/output");
        ctlr=new MediaController(this);
        ctlr.setMediaPlayer(video);
        video.setMediaController(ctlr);
        video.start();
        //video.requestFocus();//this line is new
    }
    catch (Exception e) {
       Log.e("---------- this is my app --------", "error: "   e.getMessage(), e);

    }
}
}
  

и мой макет выглядит примерно так:

 <?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<VideoView
android:id="@ id/test2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
/>
</FrameLayout>
  

Что-то не так с моим кодом?

и я знаю, что мой файл там и все такое. Я запустил этот код с образцом видео в формате 3GP, и он отлично сработал (но я записал видео со своего телефона и скопировал его на свой компьютер, а затем повторно упаковал в свое приложение в папке / res / raw в Eclipse). Однако проблема в том, что по какой-то причине мой медиаплеер воспроизводит только определенные файлы 3GPP. Если я попытаюсь конвертировать MP4 в 3GP с помощью MobileMediaConverter, он будет воспроизводиться на моем ноутбуке, но не в этом приложении. Также обратите внимание, что если я открываю видео в виде файла (другими словами, вызываю видеоплеер по умолчанию на моем телефоне Samsung Galaxy S), он работает просто отлично (это означает, что у моего телефона есть возможности). Итак, мне интересно:

  • что-то не так с кодом?
  • это скорее ошибка преобразования mp4 в 3gp?

Буду признателен за любую помощь. Спасибо!!

Ответ №1:

Проблема заключалась в том, что некоторые конвертеры (с разными настройками) создавали видеофайл, который не запускался на моем устройстве Samsung Galaxy Android. приведенный здесь код является общим, но я думаю, что при конвертации видео кодек должен быть чем-то вроде H.264. Затем я загрузил около 5 видеоконвертеров, и 2 из них фактически создадут 3GPP, которые сможет воспроизводить мое устройство. итак, если у кого-то еще есть эта проблема, я бы порекомендовал попробовать несколько видеоконвертеров с разными настройками кодека / звука. в конце концов мне удалось найти тот, который работал в моем конкретном случае