Fab*_*ian 59 android android-videoview
我写了这些代码行:
mVideoView = (VideoView) findViewById(R.id.video_view);
mVideoView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.v("LOG_TAG, click");
}
});
Run Code Online (Sandbox Code Playgroud)
但是,当我运行我的应用程序时,从不调用click事件.
所以我想知道,在VideoView上注册OnClickListener是不可能的?如果是这样,为什么会这样呢?
Dan*_*Dan 16
以下是我使用onTouch解决VideoViews暂停/播放的方法:
// Class variables
private boolean bVideoIsBeingTouched = false;
private Handler mHandler = new Handler();
vvVideo.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (!bVideoIsBeingTouched) {
bVideoIsBeingTouched = true;
if (vvVideo.isPlaying()) {
vvVideo.pause();
} else {
vvVideo.resume();
}
mHandler.postDelayed(new Runnable() {
public void run() {
bVideoIsBeingTouched = false;
}
}, 100);
}
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
naw*_*rus 15
我知道这是旧的,但我用过这个:
mVideoView.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.i(TAG, "Video 1 clicked, starting playback");
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
小智 15
我知道这是老问题,但这就是我所做的:
由于没有触发setOnClickListener,我创建了自己的类,扩展了VideoView
public class VideoViewCustom extends VideoView{
Run Code Online (Sandbox Code Playgroud)
并覆盖了onTouchEvent
@Override
public boolean onTouchEvent(MotionEvent ev) {
if(ev.getAction() == MotionEvent.ACTION_DOWN){
Log.d(TAG, "ACTION_DOWN");
}
return super.onTouchEvent(ev);
}
Run Code Online (Sandbox Code Playgroud)
现在我可以使用MotionEvent获取onClick事件.
希望这有助于某人!
VideoView 是包含 MediaPlayer 和 SurfaceView 的包装器。您可以通过 MediaController 进行交互或编写自己的 SurfaceView 并实现 onClick 事件。
| 归档时间: |
|
| 查看次数: |
27010 次 |
| 最近记录: |