- 我正在做一个需要慢动作播放视频的项目。
- 我很清楚 Android 不提供这些功能。
- 我发现 PVPlayer Engine 和 libVLC 具有这些功能,但我没有找到包含它们的任何教程或适当的文档在 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);
}
}
- 我已经尝试了暂停时间和播放时间的各种组合来消除 SCSS ,但都是徒劳的,任何人都可以帮助我消除这些 SCSS ,以便它播放一个不错的慢动作视频或建议另一个轻松将库集成到我的 android 项目中。
提前致谢......
最佳答案
我来晚了,但我找到了 API 23 及更高版本的解决方案。添加了 Android 6.0 PlaybackParams类来控制播放行为。 -
使用 MediaPlayer
的 setPlaybackParams
方法,如下所示 -
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/