在使用MediaRecorder录制时,发现 setOrientationHint 并不会实际旋转改变视频流。 只是在视频文件中增加旋转参数。视频播放器需要根据这个旋转参数进行旋转播放。 部分视频播放器会选择忽略这个参数,如window media player。
Note that some video players may choose
to ignore the compostion matrix in a video during playback.
/**
* Sets the orientation hint for output video playback.
* This method should be called before prepare(). This method will not
* trigger the source video frame to rotate during video recording, but to
* add a composition matrix containing the rotation angle in the output
* video if the output format is OutputFormat.THREE_GPP or
* OutputFormat.MPEG_4 so that a video player can choose the proper
* orientation for playback. Note that some video players may choose
* to ignore the compostion matrix in a video during playback.
*
* @param degrees the angle to be rotated clockwise in degrees.
* The supported angles are 0, 90, 180, and 270 degrees.
* @throws IllegalArgumentException if the angle is not supported.
*
*/
public void setOrientationHint(int degrees) {
if (degrees != 0 &&
degrees != 90 &&
degrees != 180 &&
degrees != 270) {
throw new IllegalArgumentException("Unsupported angle: " + degrees);
}
setParameter("video-param-rotation-angle-degrees=" + degrees);
}