MediaRecorderを使用してビデオを録画するとき、ビデオサイズを設定したいです。カメラgetParameters()はgetSupportedVideoSizesをnullに戻し、getSupportedPreviewSizesは正常です.1920x1088,1280x960、 1280x720,960x540,720x540,720x480,640x480,352x288,320x240,176x144いつかMediaRecorderの値videoSizeを設定すると、バインドされたSurfaceViewの画面が数秒後に凍結され、record.Soを開始するとどうなりますか?getSupportedVideoSizesがnullを返すときにVideoSizeを設定する方法
0
A
答えて
1
マイリッテ回避策このあった:/(!!しないスクリーン)カメラの回転によれ
/**
* Returns the optimal preview size for photo shots
*
* @param currentActivity
* @param sizes
* @param widthImage
* @param heightImage
* @return
*/
public static Size getOptimalPreviewSize(Activity currentActivity,
List<Size> sizes, int widthImage, int heightImage) {
final double ASPECT_TOLERANCE = 0.05;
double targetRatio = 0;
if (sizes == null) return null;
Camera.Size optimalSize = null;
double minDiff = Double.MAX_VALUE;
// Recupero le dimensioni dello schermo per confrontare le dimensioni della
// preview con quelle dello schermo, in modo tale che a video veda esattamente ciò che poi
// andrò a fotografare
int widthScreen = currentActivity.getWindow().getDecorView().getWidth();
int heightScreen = currentActivity.getWindow().getDecorView().getHeight();
targetRatio = (double) widthImage/heightImage;
if (Util.getDisplayRotation(currentActivity) == 0 || Util.getDisplayRotation(currentActivity) == 180) {
int temp = heightScreen;
heightScreen = widthScreen;
widthScreen = temp;
}
int targetHeight = heightScreen;
for (Camera.Size size : sizes) {
double ratio = (double) size.width/size.height;
if (Math.abs(ratio - targetRatio) > ASPECT_TOLERANCE) continue;
if (Math.abs(size.height - targetHeight) < minDiff) {
if (size.width <= widthScreen && size.height <= heightScreen) {
optimalSize = size;
minDiff = Math.abs(size.height - targetHeight);
}
}
}
if (optimalSize == null) {
minDiff = Double.MAX_VALUE;
for (Camera.Size size : sizes) {
if (Math.abs(size.height - targetHeight) < minDiff) {
optimalSize = size;
minDiff = Math.abs(size.height - targetHeight);
}
}
}
return optimalSize;
}
及び画像の寸法:Util.getOptimalPreviewSizeだっ
public void setVideoSize(int width, int height) {
// Just set Preview size...
Camera.Parameters params = getParameters();
List<Camera.Size> sizes = params.getSupportedPreviewSizes();
Camera.Size preferred = params.getPreferredPreviewSizeForVideo();
if (preferred == null) {
preferred = sizes.get(0);
}
Camera.Size optimalPreview = Util.getOptimalPreviewSize(mContext, sizes,
width, height);
setPreviewSize(optimalPreview.width, optimalPreview.height);
}
それをキャプチャするビデオは、ビデオ/画像
0
の最良のプレビューサイズを見つけます。最後に、私は問題を解決するため、プレビューtextureviewが私の活動のトップである、いくつかの他behiがありますnd。私は、Javaコードでtextureviewの幅と高さを設定するが、私は、DPとXMLでこれを設定した場合、すべてがOKですので、プレビューtextureviewの(幅と高さ)との関係は何であると記録映像の(幅と高さ)
関連する問題
- 1. Android getSupportedVideoSizes allways nullを返します。
- 2. HTTPステータス404が返されたときにnullを返すようにSpringのRestTemplateを設定する方法
- 3. DateTimeをNULLに設定する方法
- 4. 円リンクリストを解放するときにポインタをnullに設定する方法
- 5. Zend_Dbを使用するときに値をNULLに設定する方法
- 6. nullが返されたときにnullデータを処理する方法
- 7. datetimeのnullを設定する方法
- 8. MysqlのNULLフィールドにNULLを設定する方法
- 9. Scrapyセレクタが返るときにデフォルト値を設定する方法
- 10. Swiftmailerを使用するときに返信を設定する方法
- 11. NULL値をNULL以外の列に挿入するときの既定値の設定方法SQL Server?
- 12. ArrayListは、スピナーアダプタで設定するとnullを返しますか?
- 13. EFコアはリレーションを設定するときにnullを設定します
- 14. ListFragmentカスタムレイアウトのDivider(nullにする)を設定する方法
- 15. コントローラがnull結果を返すときにjspにnull値を表示する方法は?
- 16. nullのときにプロパティの既定値を設定する
- 17. セッションを設定できず、Nullを返す
- 18. C++ - NULLにノードを設定すると
- 19. nullを返す方法
- 20. トライですべての子をNULLに設定する方法
- 21. pageloadの前にjavascript変数をnullに設定する方法
- 22. バッキングフィールドがnullの場合でもgetterをnull以外の型を返すように設定すると、
- 23. 日付フィールドの既定値をNULLに設定する方法テーブルエントリが作成され、ブックが返されたときに更新されますか?
- 24. メソッドが特定の値を返すときにXcodeで "スマート"ブレークポイントを設定する方法は?
- 25. 複数のテーブルを結合するときにNULL値を返す方法
- 26. ストアドプロシージャにnull値があるときにカラムのデフォルト値を設定する方法
- 27. リスト項目をnullに設定する方法C#?
- 28. SQL動的ピボットクエリでNULLを0に設定する方法
- 29. SASでNULLに欠損値を設定する方法
- 30. Django:フィールドをNULLに設定する方法は?