Public Sub PrepareSurfaceForVideo (MyTaskIndex As Int, Dir As String, FileName As String) As ResumableSub
If MyTaskIndex <> TaskIndex Then Return False
CloseSession
Wait For (CreateSurface) Complete (Result As Boolean)
If MyTaskIndex <> TaskIndex Then Return False
File.Delete(Dir, FileName)
MediaRecorder = Camera.CreateMediaRecorder(PreviewSize, Dir, FileName)
Dim rotation As Int = jcamera.GetField("lastKnownOrientation")
Dim SensorOrientation As Int = GetFromCameraCharacteristic("SENSOR_ORIENTATION")
Dim orientations As List
If SensorOrientation = 90 Then
orientations = Array(90, 0, 270, 180)
Else
orientations = Array(270, 180, 90, 0)
End If
MediaRecorder.RunMethod("setOrientationHint", Array(orientations.Get(Floor(rotation / 90))))
LogColor("previewsize: " & PreviewSize.Width & " -- " & PreviewSize.Height & " " & "capturesize: " & CaptureSize.Width & " -- " & CaptureSize.Height, Colors.Blue)
Log("tv initialized: " & tv.IsInitialized)
Camera.StartSession(tv, PreviewSize, CaptureSize, 0, 0, True)
Wait For Camera_SessionConfigured (Success As Boolean)
If MyTaskIndex <> TaskIndex Then Return False
Return Success
End Sub