2014-05-25 3 views
0

기본적으로 다른 컴퓨터에서 ping을 수신 할 때 비디오를 녹화해야하는 작은 응용 프로그램을 만들고 있습니다.Google Glass에서 비디오 캡처 작업 시작

기본 라이브 카드를 만들기 위해 Google Glass stopwatch example을 확장했습니다. ChronometerView.java을 삭제하고 CountDownView.java을 변경하여 카운트 다운하지 않지만 ServerSocket을 열고 다른 컴퓨터에서 ping을 받으면 텍스트를 표시합니다.

이 모든 것이 순조롭게 진행되지만 신호가 수신되면 Glass 'built-in camera activityCountDownView.java에서 시작하고 싶습니다. 단순히 아래 코드를 삽입해도 작동하지 않습니다 (이해할 수있는 한) CountDownView.javaactivity을 확장하지 않습니다.

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
startActivityForResult(intent, TAKE_VIDEO_REQUEST); 

그럼 어떻게하면이 시점에서 카메라 작동을 시작할 수 있습니까?

답변

2

컨텍스트에서 활동을 시작해야합니다. 먼저 테스트하기 위해 아래의 단계를 따르 StopwatchService.java에서

, 추가

private static StopwatchService mAppService;  

public static StopwatchService appService() { 
    return mAppService; 
} 

@Override 
public void onCreate() { 
    super.onCreate(); 
    mAppService = this; 
} 

을 CountDownView.java에서 public CountDownView(Context context, AttributeSet attrs, int style) {...}의 끝에서, 추가 : 또한

mHandler.postDelayed(mLaunchVideoRunnable, 1000); 

을 CountDownView에 .java, 추가 :

private final Handler mHandler = new Handler(); 
private final Runnable mLaunchVideoRunnable = new Runnable() { 
    @Override 
    public void run() { 
     Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     StopwatchService.appService().startActivity(intent); 
    } 
}; 

FLAG_ACTIVITY_NEW_TASK을 추가해야합니다. 또는 앱이 다운됩니다. 이것을 테스트 한 후에 코드를 소켓 데이터를받는 곳으로 복사 할 수 있습니다.

관련 문제