Here它表示我可以使用AudioVideoCaptureDevice
录制视频,但没有提供示例或帮助。
我需要做以下事情:
- 将视频录制为流完成
- 显示录制的视频缩略图(可以是视频录制时捕获的帧)完成
- 重播录制的视频完成
- 更改分辨率和相机类型(前/后)完成
如何实现这一目标?有样品吗?我无法找到它们。请帮帮我。
完成
- 将视频录制成流
- 重播录制的视频
- 更改分辨率和相机类型(前/后)
- 显示录制的视频缩略图(可以是视频录制时捕获的帧)
新问题
- 前置摄像头视频镜像倒置。我可以在使用变换录制时更改此设置,但实际视频仍然是镜像的。
更新
- 计算录制视频的大小并显示它。它不起作用。 Stream.Size提供随机值。
有关解决这些问题的任何想法吗?
答案 0 :(得分:3)
对于显示视频录制缩略图的问题... AudioVideoCaptureDevice上有一个名为PreviewFrameAvailable的事件。我想如果您设置此事件处理程序,它将告诉您何时可以获得视频的预览(图像/缩略图)数据。
还有3种方法可以获取预览图像的字节数组(GetPreviewBufferARGB,GetPreviewBufferY,GetPreviewBufferYCbCr)。所有这三种方法都以相应的格式返回图像像素数据的byte [](例如:GetPreviewBufferARGB应返回ARGB格式的原始位图的原始字节)。获取预览数据的字节数组后,您应该能够将其编码为PNG或JPEG或您喜欢的任何压缩图像格式。祝你好运。
答案 1 :(得分:1)
此处介绍了使用Windows Phone 8相机的基本知识......
Advanced photo capture for Windows Phone 8
How to save a picture captured with the new camera’s API in the camera roll in Windows Phone 8
How to set video record resolution in Windows Phone 8
获取前置摄像头支持的分辨率时出现问题答案 2 :(得分:0)
我通过Item.joins(:player).order(created_at :desc).pluck('players.id', 'players.name').uniq.first(5)
解决了镜像倒置视频录制的问题:
解决我问题的一行是:
Front-Camera
完整代码:
XAML代码
//here videoCapture is AudioVideoCaptureDevice object
videoCapture.SetProperty(KnownCameraGeneralProperties.EncodeWithOrientation, -90);
BackEnd C#代码
<Canvas x:Name="CanvasLayoutRoot" RenderTransformOrigin="0.5 0.5"
Width="{Binding ActualHeight, ElementName=LayoutRoot}"
Height="{Binding ActualWidth, ElementName=LayoutRoot}"
Margin="-160 0 0 0">
<Canvas.RenderTransform>
<RotateTransform x:Name="rt" />
</Canvas.RenderTransform>
<Canvas.Background>
<VideoBrush x:Name="videoBrush" />
</Canvas.Background>
</Canvas>
这段代码经过数十次努力帮助了我......!