android - 在android中以慢动作播放视频

标签 android video handler runnable libvlc

- 我正在做一个需要慢动作播放视频的项目。

- 我很清楚 Android 不提供这些功能。

- 我发现 PVPlayer EnginelibVLC 具有这些功能,但我没有找到包含它们的任何教程或适当的文档在 android 项目中并使用它们。

- 所以我尝试通过使用 RunnableHandler 来做到这一点,它成功地减慢了视频速度,但它们在播放过程中出现了抖动.

public class MainActivity extends Activity {

    VideoView vx;
    Button mbutt;
    Handler h ;
    int curr = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        h = new Handler();

        vx = (VideoView)findViewById(R.id.videoView);
        mbutt = (Button)findViewById(R.id.button_Play);

        vx.setVideoPath("/mnt/sdcard/you.mp4");

        mbutt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                vx.start();
            }
        });


        Runnable r = new Runnable() {

            @Override
            public void run() {

                if (vx != null) {

                    if (vx.isPlaying()){

                        vx.pause();  
                    }
                    else{                        
                        vx.start(); 
                    }
                }

                h.postDelayed(this, 50);
            }
        };

        h.postDelayed(r, 200);






    }


}

- 我已经尝试了暂停时间和播放时间的各种组合来消除 SCSS ,但都是徒劳的,任何人都可以帮助我消除这些 SCSS ,以便它播放一个不错的慢动作视频或建议另一个轻松将库集成到我的 android 项目中。

提前致谢......

最佳答案

我来晚了,但我找到了 API 23 及更高版本的解决方案。添加了 Android 6.0 PlaybackParams类来控制播放行为。 -

使用 MediaPlayersetPlaybackParams 方法,如下所示 -

videoview = (VideoView)findViewById(R.id.videoview);
videoview.setVideoURI("Your Video URI"); 
videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    //works only from api 23
                    PlaybackParams myPlayBackParams = new PlaybackParams();
                    myPlayBackParams.setSpeed(0.5f); //here set speed eg. 0.5 for slow 2 for fast mode
                    mp.setPlaybackParams(myPlayBackParams);

                    videoview.start();//start your video.
                }
        });

关于android - 在android中以慢动作播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18526336/

相关文章:

Android - 包括来自另一个模块的布局

iOS 8——捕获屏幕视频

Python:从处理后的图像中创建视频

javascript - 根据加载文件的内容阻止分配的成功处理程序

java - 如何向 JAX-WS Web 服务处理程序提供参数?

Android 无法使用 AVRDUDE 与 Arduino 对话

android - 从 SQLite 数据库中检索数据

android - Android中Looper、Handler和MessageQueue是什么关系?

android - 如何修复来自 Appium 的错误 "Could not detect Mac OS X Version from sw_vers output: ' 10.12 '"

c++ - 在没有硬件加速的情况下使用 ffmpeg (C++)