【问题标题】:Playback video in slow motion in android在android中以慢动作播放视频
【发布时间】:2013-08-30 06:25:42
【问题描述】:

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

- 我很清楚 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);






    }


}

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

提前致谢......

【问题讨论】:

    标签: android video handler runnable libvlc


    【解决方案1】:

    我迟到了,但我找到了 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.
                    }
            });
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-06
        • 1970-01-01
        • 2020-12-30
        • 2017-06-29
        • 2011-04-23
        • 1970-01-01
        • 1970-01-01
        • 2012-02-11
        相关资源
        最近更新 更多