mp4 в VideoView - PullRequest
       41

mp4 в VideoView

0 голосов
/ 29 ноября 2018

Исходный формат моего видеофайла не позволял работать ни на каком устройстве, поэтому я запустил его через ffmpeg, чтобы преобразовать его в тип, который был бы более совместимым.Теперь он работает на большинстве устройств, но есть еще несколько, которые выдают ошибку «Не удается воспроизвести этот файл»

Команда, которую я использовал для его преобразования, была:

ffmpeg -i <INPUT_VIDEO> -c:v libx264 -profile:v baseline -c:a aac -ar 44100 -ac 2 -b:a 128k -movflags faststart output.mp4

Есть лилучшие параметры преобразования я мог бы использовать, чтобы он универсально работал со всеми устройствами?(Я знаю, что 480x360 h264 работает для всех устройств, но я не хочу отказываться от качества видео)

Код, который работает на определенных устройствах:

public class SplashActivity extends AppCompatActivity {

    VideoView videoView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash_screen);
        videoView = (VideoView) findViewById(R.id.video_view);

        Uri video = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.splashv4);
        videoView.setVideoURI(video);

        videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer mp) {
                startNextActivity();
            }
        });

        videoView.start();
    }

    private void startNextActivity() {
        if (isFinishing())
            return;
        startActivity(new Intent(this, LoginActivity.class));
        finish();
    }
}

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Если нет, взгляните на рекомендуемые форматы мультимедиа .Если проблема в разрешении, вы можете создать другой файл с разрешением 480 * 360.Можно с уверенностью предположить, что устройства, которые не способны воспроизводить HD-видео, вероятно, имеют меньший экран.Добавьте setOnErrorListener к вашему VideoView и попробуйте воспроизвести видео снова с меньшим разрешением, если первая попытка не удалась.Верните true в ваш OnErrorListener, чтобы избавиться от диалога Can't play this video.

РЕДАКТИРОВАТЬ

Я также рекомендую дважды проверить URI.Согласно этой теме , использование android.resource:// не очень хорошая идея.

0 голосов
/ 06 декабря 2018

Я бы рассмотрел использование формата WEBM, а не MP4.WebM воспроизводится на каждом устройстве Android, с которым я когда-либо сталкивался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...