2012-06-16 62 views
0

我需要隱藏我如何以編程方式記錄視頻。現在我使用這種結構:如何使用Intents記錄視頻?

public class AndroidLearningActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     this.setContentView(R.layout.main); 

     Intent captureVideoIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE); 
     startActivityForResult(captureVideoIntent, 100); 
    } 

    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     Uri uri=data.getData(); 
     Log.e("result", "result:"+resultCode); 

    } 
} 

當應用程序打開時,相機也會被打開。我錄製了一些視頻,但是如果我按下設備上的「返回」按鈕,應用程序就會崩潰。請解釋我,我該怎麼辦?謝謝。

+1

您需要發佈LogCat/Stacktrace。我們怎麼知道你的應用程序爲什麼會「擠壓」? – techiServices

+0

看起來像你正在按回鍵而沒有設置意圖,所以數據可能爲空........配置所需的日誌貓 –

+0

是的,你是對的,結果總是爲空。但我應該如何關閉視頻錄製? – user1445877

回答

1

看起來你按返回鍵以及數據(意向)沒有得到set.so數據可能爲空在這裏

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (resultCode == RESULT_OK) { 
     Uri uri=data.getData(); 
     Log.e("result", "result:"+resultCode); 
     } 

    } 
1

您在此聲明

 Uri uri=data.getData(); 
     Log.e("result", "result:"+resultCode); 

當你按下有問題後退按鈕錄製將被取消,並且您將得到data.getData爲空,因爲沒有錄製完成。請將您的代碼更改爲以下內容。

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

     if (data != null) { 
      Uri uri = data.getData(); 
      Log.e("result", "result:" + resultCode); 
     } 

     super.onActivityResult(requestCode, resultCode, data); 
    } 
+0

是的。請告訴我,如何在沒有後退按鈕的情況下關閉標準錄製應用程序?沒有辦法做到這一點。 – user1445877

+0

是的,如果你去使用內置的錄音意圖然後返回按鈕是唯一的選擇:) –