android - 如何获取VideoView getcurrentPosition 并设置seekTo 希望位置无法正常工作?

标签 android android-videoview mediacontroller

我正在使用一个应用程序,该应用程序支持同一视频的多语言。每当我从英语切换到印地语时,反之亦然。它根据当前位置设置了eekTo,但我得到了变化,这不是我想要的确切当前位置。

public class VideoActivity extends Activity {

VideoView mVideoView;
Button btnHindi,btnEnglish;
int currenth = 0;
int currente = 0;

String videoPathEnglish = "/storage/sdcard1/test/english.mp4";
String videoPathHindi = "/storage/sdcard1/test/hindi.mp4";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    btnHindi = (Button)findViewById(R.id.btnHindi);
    btnEnglish = (Button)findViewById(R.id.btnEnglish);

    mVideoView = (VideoView) findViewById(R.id.my_Video_View);
    mVideoView.setMediaController(new MediaController(VideoActivity.this));

    btnHindi.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            if (mVideoView.isPlaying()) {
                mVideoView.pause();
            }

            currente = 0;

            currente = mVideoView.getCurrentPosition();
            Log.e("CurrentEnglish",currente+"");


            String videopath = videoPathHindi;
            mVideoView.setVideoURI(Uri.parse(videopath));
            mVideoView.requestFocus();
            mVideoView.seekTo(currente);
            mVideoView.start();

            btnEnglish.setEnabled(true);
            btnHindi.setEnabled(false);

        }
    });


    btnEnglish.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            if (mVideoView.isPlaying()) {
                mVideoView.pause();
            }

            currenth = 0;

            currenth = mVideoView.getCurrentPosition();
            Log.e("CurrentHindi",currenth+"");

            String videopath = videoPathEnglish;
            mVideoView.setVideoURI(Uri.parse(videopath));
            mVideoView.requestFocus();
            mVideoView.seekTo(currenth);
            mVideoView.start();

            btnEnglish.setEnabled(false);
            btnHindi.setEnabled(true);   

        }
    });
}

}

请告诉我我做错了什么?

谢谢

最佳答案

当你寻求某个位置时,你不会完全从你想要的位置开始玩:

Accuracy of MediaPlayer.seekTo(int msecs)

关于android - 如何获取VideoView getcurrentPosition 并设置seekTo 希望位置无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29253480/

相关文章:

Android:播放音频时不显示 MediaController。

android - Camera2 中的预览回调明显慢于 Camera1

android - 禁用 Android VideoView 对象中的用户控件

android - 底部的粘性 ScrollView 项目 - Android

android - 自定义范围搜索栏

android - 如何在 Activity 中的视频播放器上叠加

android - 无法在android中使用mediacontroller暂停/前进/后退视频

android - 为什么没有显示 mediacontroller?

android - 使用动画师类在 View 中为可绘制对象设置动画的最佳方式是什么?

android - 如何创建默认状态下带有笔划的透明Ripple Drawable