2014-12-04 33 views
0

簡單的問題。我有一個按鈕,我在其中設置了OnClick和OnLongClick監聽器。 onclick用於拍攝照片,longclick用於拍攝視頻。長按,只要按下按鈕,我就開始錄製,此時我停止錄製。然而,這不符合我的代碼工作:LongClick的OnTouchListener

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(); 
    } 

有沒有什麼明顯的我做錯了?謝謝。

回答

0

只要我發佈這個,就想通了。我必須在我用來停止視頻的Camera對象上調用stopPreview()。錄音本身已經停止,但沒有視覺。