Рендеринг текстуры в видео с задержкой пользовательского интерфейса - PullRequest
0 голосов
/ 17 ноября 2018

Это ссылка на мое приложение: https://play.google.com/store/apps/details?id=com.videocaller.videoringtone

Я пытался показывать видео всякий раз, когда получаю входящий вызов. Я столкнулся с некоторыми проблемами, связанными с тем, что Textureview рендерит видео с задержкой. Так что я не могу сделать это. Я использовал videoviewвместо textureview для целей тестирования. Это работает безупречно. Но моя проблема в том, что я не могу использовать videoview.beacuse, мне нужно масштабировать видео, поэтому, вероятно, я должен использовать Textureview.

Я использовал этот Lib для Textureview https://github.com/dmytrodanylyk/video-crop

Даже когда я попробовал свой собственный Textureview.i возникла та же проблема, рендеринг видео требует некоторой задержки.

MediaPlayer mediaPlayer;
    @Override
    public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i1) {
        mediaPlayer = new MediaPlayer();
        mediaPlayer.setSurface(new Surface(surfaceTexture));
        try {
            mediaPlayer.setDataSource(videoPath);
            mediaPlayer.prepare();
            mediaPlayer.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int i, int i1) {

    }

    @Override
    public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
        return false;
    }

    @Override
    public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {

    }
...