在android中以慢动作播放视频

Kum*_*tra 5 video android handler runnable libvlc

-我正在开发一个需要以慢动作播放视频的项目.

-我很清楚Android没有提供这些功能.

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

-所以我尝试通过使用Runnable和这样做Handler,它成功地减慢了视频,但他们在播放期间拥有混蛋.

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);






    }


}
Run Code Online (Sandbox Code Playgroud)

-我已经尝试了各种组合的暂停时间和播放时间来消除混蛋,但都是徒劳的,任何人都可以帮助我删除这些混蛋,这样它可以播放一个漂亮的慢动作视频或建议另一个易于集成的库到我的android项目.

提前致谢......

kar*_*.io 5

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

使用setPlaybackParams方法MediaPlayer如下 -

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.
                }
        });
Run Code Online (Sandbox Code Playgroud)


Mar*_*uku 0

如果你正在寻找如何将VLC嵌入到android中,你可以参考这个。您可以通过调用 libVLC 的 setRate(0.5f) 来更改速度以实现慢动作。