feat: Add width
and height
to VideoFile
output (#2281)
* feat: Add `width` and `height` to `VideoFile` output * Format
This commit is contained in:
parent
98f08800f2
commit
9a187c6d19
@ -25,6 +25,8 @@ suspend fun CameraView.startRecording(options: RecordVideoOptions, onRecordCallb
|
||||
val map = Arguments.createMap()
|
||||
map.putString("path", video.path)
|
||||
map.putDouble("duration", video.durationMs.toDouble() / 1000.0)
|
||||
map.putInt("width", video.size.width)
|
||||
map.putInt("height", video.size.height)
|
||||
onRecordCallback(map, null)
|
||||
}
|
||||
val onError = { error: RecorderError ->
|
||||
|
@ -32,7 +32,7 @@ class RecordingSession(
|
||||
private const val AUDIO_CHANNELS = 1
|
||||
}
|
||||
|
||||
data class Video(val path: String, val durationMs: Long)
|
||||
data class Video(val path: String, val durationMs: Long, val size: Size)
|
||||
|
||||
private val bitRate = getBitRate()
|
||||
private val recorder: MediaRecorder
|
||||
@ -106,7 +106,7 @@ class RecordingSession(
|
||||
|
||||
val stopTime = System.currentTimeMillis()
|
||||
val durationMs = stopTime - (startTime ?: stopTime)
|
||||
callback(Video(outputFile.absolutePath, durationMs))
|
||||
callback(Video(outputFile.absolutePath, durationMs, size))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,8 @@ extension CameraSession {
|
||||
if status == .completed {
|
||||
// Recording was successfully saved
|
||||
let video = Video(path: recordingSession.url.absoluteString,
|
||||
duration: recordingSession.duration)
|
||||
duration: recordingSession.duration,
|
||||
size: recordingSession.size ?? CGSize.zero)
|
||||
onVideoRecorded(video)
|
||||
} else {
|
||||
// Recording wasn't saved and we don't have an error either.
|
||||
|
@ -52,6 +52,13 @@ class RecordingSession {
|
||||
return assetWriter.outputURL
|
||||
}
|
||||
|
||||
/**
|
||||
Gets the size of the recorded video, in pixels.
|
||||
*/
|
||||
var size: CGSize? {
|
||||
return videoWriter?.naturalSize
|
||||
}
|
||||
|
||||
/**
|
||||
Get the duration (in seconds) of the recorded video.
|
||||
*/
|
||||
|
@ -18,11 +18,17 @@ struct Video {
|
||||
Duration of the recorded video (in seconds)
|
||||
*/
|
||||
var duration: Double
|
||||
/**
|
||||
* The size of the video, in pixels.
|
||||
*/
|
||||
var size: CGSize
|
||||
|
||||
func toJSValue() -> NSDictionary {
|
||||
return [
|
||||
"path": path,
|
||||
"duration": duration,
|
||||
"width": size.width,
|
||||
"height": size.height,
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -53,4 +53,12 @@ export interface VideoFile extends TemporaryFile {
|
||||
* Represents the duration of the video, in seconds.
|
||||
*/
|
||||
duration: number
|
||||
/**
|
||||
* The width of the video, in pixels.
|
||||
*/
|
||||
width: number
|
||||
/**
|
||||
* The height of the video, in pixels.
|
||||
*/
|
||||
height: number
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user