【问题标题】:Control the playback speed of video in android控制android中视频的播放速度
【发布时间】:2011-06-04 14:27:49
【问题描述】:

我正在使用 VideoView 播放保存在 res/raw 中的视频文件。我找不到控制视频播放速度的方法。基本上我想在移动滚动条时减少和增加播放。有什么办法可以实现这个吗?

【问题讨论】:

  • 嗨,我想像你一样在视频视图功能中实现,我不知道,如果你找到任何解决方案,请发给我,谢谢。

标签: android video android-videoview


【解决方案1】:

你可以使用它,但它适用于 api 23 及更高版本

 mVideo.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {

            //works only from api 23
            PlaybackParams myPlayBackParams = null;
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
                myPlayBackParams = new PlaybackParams();
                myPlayBackParams.setSpeed(0.8f); //you can set speed here
                mp.setPlaybackParams(myPlayBackParams);
            }

        }
    });

【讨论】:

  • 代码简洁,优秀
  • 可以保证这个比使用mp.setPlaybackParams(mp.getPlaybackParams().setSpeed(speed));更有效
【解决方案2】:

不,您不能仅通过使用VideoView 来更改播放速率。 VideoViewMediaPlayer 只提供有限的媒体功能。

您必须使用一些第三方库,例如 PVPlayer,并自己实现。

这也是 Android 上优秀的媒体播放器如此有价值的原因:)

【讨论】:

    【解决方案3】:

    我想说Mk Kamal 的解决方案有一个意想不到的副作用:在应用程序从后台返回时,在OnPreparedListener 中调用setPlaybackParams 将强制VideoView 重复最新播放的视频。 我不知道这是错误还是功能,但我找到了避免这种行为的方法:

    private float speed = 0.8f;
    private final MediaPlayer.OnInfoListener listener = (mp, what, extra) -> {
    
        if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) {
            mp.setPlaybackParams(mp.getPlaybackParams().setSpeed(speed));
            return true;
        }
        return false;
    };
    
    
    videoView.setOnPreparedListener(
                    mp -> {
                        mp.setOnInfoListener(listener);
                    }
            );
    

    MEDIA_INFO_VIDEO_RENDERING_START 将仅在播放器已启动时发送。

    我要强调的是getPlaybackParams被注释为@NonNull,所以没有必要创建新的PlaybackParams对象。

    【讨论】:

      【解决方案4】:

      DicePlayer 在我的 Asus Transformer 上完美运行。 它有一个速度控制屏幕显示。

      我不确定res/raw 是什么。

      【讨论】:

      • 问题是关于在 android 中实现速度控制,而不是关于现有应用程序。因此当之无愧的负分
      猜你喜欢
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-30
      • 2018-08-28
      • 1970-01-01
      相关资源
      最近更新 更多