2013-01-10 11 views
6

AndroidのMediaRecorderクラスのヘルプが必要です。Android getSupportedVideoSizes allways nullを返します。

私はgetSupportedVideoSizesを使用して、サポートされているビデオサイズのリストを取得しようとしますが、常にnullを返します。テストで

getSupportedVideoSizesが照会されたときに、次のデバイスがnullを返す:

  • ギャラクシーネクサス(アンドロイド4.2)
  • HTCつのミニ(アンドロイド4.4.2)
  • HTCEVOV4G(アンドロイド4.0.3読み出し)
+0

ここでは、トピックhttp://stackoverflow.com/questions/5934829/how-to-get-supported-video-camera-resolutions-in-androidに関するいくつかの議論があります。 – harism

+0

こんにちは、あなたの助けに感謝しますが、残念ながら私はそのポストを見ました。しかし、どうすれば別々のプレビューとビデオ出力を設定できますか?それは私が理解できないものです...彼らはすべてその関数getSupportedVideoSizesを使用するので、私のためにnullを返し続けます。 – cataHHH

+0

YShinkarevによって最後のコメントが残っていますか?いくつかのケースでは、 '' getSupportedVideoSizes''が設計通りにnullを返すと述べました。 – harism

答えて

33

The documentation for Camera.getSupportedVideoSizes()

返品
カメラに別々のプレビューとビデオ出力がある場合は、Sizeオブジェクトのリスト。それ以外の場合はnullが返されます。

は完全ではありません。ただし、Camera.getSupportedVideoSizes()がnullを返した場合、カメラのサポートされているプレビューサイズとビデオサイズは同じであることを意味します。この場合、サポートされているビデオサイズのリストを取得するには、Camera.getSupportedPreviewSizes()を使用してください。

サンプルコード:

public List<Size> getSupportedVideoSizes(Camera camera) { 
    if (camera.getParameters().getSupportedVideoSizes() != null) { 
     return camera.getParameters().getSupportedVideoSizes(); 
    } else { 
     // Video sizes may be null, which indicates that all the supported 
     // preview sizes are supported for video recording. 
     return camera.getParameters().getSupportedPreviewSizes(); 
    } 
} 
+4

アンドロイドのドキュメントの説明は全く不道理です! –

+0

良い答えと説明...これは、特に開発用デバイスがgetSupportedVideoSizes()のリストを返すとき、簡単に見落とされる小さなキャッチです。サムスンと他の人がnullを返すことがわかったので、私のアプリは使用するピクチャサイズを推測するだけで済み、その結果、すべてのデバイスでサポートされていなかった設定になりました。 nullの場合を処理するためにgetSupportedPreviewSizes()を使用すると、現在はしっかりと動作しています。 – Wookie

+0

ばかげたドキュメンテーションでは、この種のすばらしい掘り出し物が必要です。ありがとう+1;) –

0

それとも

mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH)); 

が自動的に最適な解像度を設定するために使用します。

関連する問題