2013-02-19 115 views
3

我正在做一個Android視頻應用程序,其中我錄製了一些視頻並管理列表中的視頻。視頻被正確拍攝,但它們顯示爲橫向(我的意思是如果我的設備實際處於橫向模式,我可以在縱向模式下觀看視頻)。任何人都可以讓我知道如何解決這個問題。我用下面的代碼來記錄錄製的視頻在Android設備中橫向播放三星設備

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE); 
startActivityForResult(cameraIntent,120); 

而且我會將視頻存儲在圖庫中。與自定義視頻錄製相關的任何代碼也很有幫助。你可以在下面的圖片中看到我的問題。我嘗試了很多方法,比如放setDisplayOrientation()setOrientationHint()。我想知道這個問題沒有解決方案嗎?那麼開發視頻應用程序有多少。請有人幫助我。

我指的是thisthis也有鏈接。

enter image description here

回答

1

確認你在main.xml中的文件(縱向和橫向)有一個備用的佈局了。這應該正常地照顧您的設備的兩個方向。 這兩個xml文件應該在不同的Layout文件夾中具有相同的名稱(例如main.xml)。

+0

你能給示例代碼,如果您有它。我沒有聽到你說的話,當我試着按照你所說的仍然遇到問題時。 – TNR 2013-02-21 06:10:14

+0

我說它可能只是一個小問題,因爲你的代碼運行正常。使用Ctrl + F11交替模擬器的方向,查看它是否適用於橫向或縱向。 – user1978601 2013-03-03 23:42:27

1

這將是一個黑客位的(雖然根據this post,有沒有辦法來記錄不同的方位視頻),但以上API級別14,你可以用Media Effects轉動你的VideoView

0

您顯示的錄製代碼似乎是正確的。我只是用ICS測試了我的三星S2上的代碼,並且視頻以正確的方向播放。 您不顯示播放的代碼。也許這就是問題所在:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == 120) { // i personally prefer using a constant here 
     VideoView videoView = (VideoView) findViewById(R.id.videoView); 
     videoView.setVideoURI(data.getData()); 
     videoView.start(); 
    } 
} 

爲videoView佈局XML是非常簡單的:

<VideoView 
    android:id="@+id/videoView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 

如果以上不工作,你也可以嘗試EXTRA_SCREEN_ORIENTATION設置爲不同的值。儘管YMMV,但在我的設備上它似乎沒有什麼區別。下面的代碼,再加上我在一些額外扔,因爲你已經要求更多的自定義視頻記錄代碼:

private static final int RECORD_VIDEO = 120; 

private void startRecording() { 
    Intent cameraIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
    cameraIntent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    cameraIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0); // low quality 
    cameraIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 5); // limit to 5 seconds 
    startActivityForResult(cameraIntent, RECORD_VIDEO); 
} 

有很多更演員:http://developer.android.com/reference/android/provider/MediaStore.html#EXTRA_DURATION_LIMIT

相關問題