用于LongClick的OnTouchListener

时间:2014-12-04 17:57:48

标签: android camera ontouchlistener mediarecorder

简单的问题。我有一个按钮,我在其中设置OnClick和OnLongClick监听器。 onclick用于拍照,而longclick用于拍摄视频。在longclick上,只要按下按钮,我就开始录制,此时我停止录制。但是,这不适用于我的代码:

photoButton.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            Log.v("Miles", "onlong");
            invisiblizeAllButtons();
            cameraPreview.startVideo();
            v.setOnTouchListener(new OnTouchListener() {

                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    switch(event.getAction()) {
                        case MotionEvent.ACTION_UP:
                            Log.v("Miles", "ACTION UP");
                            cameraPreview.stopVideo();
                            return true;
                    }
                    return true;
                }

            });
            return true;
        }

    });

打印的日志按此顺序排列:ONLONG,ACTIONUP和stopVideo(),“STOPVIDEO”。所以语法似乎有效;但是,我的录音机不会停止录音:

public void stopVideo() {
        Log.v("Miles", "STOP VIDEO");
        mMediaRecorder.stop();
        mMediaRecorder.release();
    }

有什么明显的我做错了吗?感谢。

1 个答案:

答案 0 :(得分:0)

我发布此消息后立即想出来。我不得不在我用来停止视频的Camera对象上调用stopPreview()。录音本身已经停止,但不是视觉上的。