博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows Phone 8.1 多媒体(2):视频
阅读量:5816 次
发布时间:2019-06-18

本文共 2864 字,大约阅读时间需要 9 分钟。

原文:

Windows Phone 8.1 多媒体(2):视频

 


 

(1)拍摄视频

拍摄视频和拍摄相片的方法是基本一致的:

MediaCapture mediaCapture;MediaEncodingProfile videoEncodingProperties;protected override async void OnNavigatedTo(NavigationEventArgs e){    HardwareButtons.CameraHalfPressed += HardwareButtons_CameraHalfPressed;    HardwareButtons.CameraReleased += HardwareButtons_CameraReleased;    videoCaptrueElement.Source = await Initialize();    await mediaCapture.StartPreviewAsync();}async void HardwareButtons_CameraHalfPressed(object sender, CameraEventArgs e){    if( mediaCapture != null )    {        var video = await KnownFolders.VideosLibrary.CreateFileAsync("video.mp4", CreationCollisionOption.GenerateUniqueName);await mediaCapture.StartRecordToStorageFileAsync(videoEncodingProperties, video);    }}async void HardwareButtons_CameraReleased(object sender, CameraEventArgs e){    if( mediaCapture != null )    {        await mediaCapture.StopRecordAsync();    }}private async Task
Initialize(){ mediaCapture = new MediaCapture(); await mediaCapture.InitializeAsync(); mediaCapture.VideoDeviceController.PrimaryUse = CaptureUse.Video; videoEncodingProperties = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Vga); return mediaCapture;}protected override void OnNavigatedFrom(NavigationEventArgs e){ if( mediaCapture != null ) { mediaCapture.Dispose(); mediaCapture = null; }}

 

(2)编辑视频

视频编辑的 API 在 Windows.Media.Editing 命名空间下,具体可看 MSDN:

简单的说就是把某些视频实例化为 MediaClip,然后将这些视频添加到 MediaComposition.Clips 中去,最后将这些视频拼接到一起或添加个 BackgroundAudioTrack 什么的:

MediaClip video = await MediaClip.CreateFromFileAsync(                 await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///thanks.mp4")));MediaComposition videos = new MediaComposition();videos.Clips.Add(video);BackgroundAudioTrack bgm = await BackgroundAudioTrack.CreateFromFileAsync(                     await StorageFile.GetFileFromApplicationUriAsync(new Uri("Above Your Hand.mp3")));videos.BackgroundAudioTracks.Clear();videos.BackgroundAudioTracks.Add(bgm);await videos.SaveAsync(await ApplicationData.Current.LocalFolder.CreateFileAsync("video.mp4", CreationCollisionOption.ReplaceExisting));

 

(3)录制手机屏幕视频

录制手机屏幕视频是 WP8.1 新加的 API,使用方法和拍摄视频差不多,只需将录制对象设为屏幕即可:

var screenCapture = ScreenCapture.GetForCurrentView();mediaCapture = new MediaCapture();await mediaCapture.InitializeAsync(new MediaCaptureInitializationSettings{    VideoSource = screenCapture.VideoSource,    AudioSource = screenCapture.AudioSource,});var file = await KnownFolders.VideosLibrary.CreateFileAsync("screenrecording.mp4", CreationCollisionOption.ReplaceExisting);await mediaCapture.StartRecordToStorageFileAsync(MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Auto), file);

停止录制:

if( mediaCapture != null ){    await mediaCapture.StopRecordAsync();    mediaCapture.Dispose();    mediaCapture = null;}

 

转载地址:http://jymbx.baihongyu.com/

你可能感兴趣的文章
JavaScript 设计模式之单例模式
查看>>
C#验证子网掩码的正确性
查看>>
quartz定时任务中常用的cron表达式
查看>>
移动分组域与计费相关的名词解释
查看>>
python 安装包总结
查看>>
sublime text3 --前端工程师必备
查看>>
安装oracle环境变量path的值大于1023的解决办法
查看>>
[转]同一个tomcat不同项目的session共享问题
查看>>
http-server使用
查看>>
【oracle11g,17】存储结构: 段的类型,数据块(行连接、行迁移,块头),段的管理方式,高水位线...
查看>>
【打CF,学算法——二星级】CF 520B Two Buttons
查看>>
优秀关卡策划的10评判标准
查看>>
if __name__=='__main__"在有的virtualenvs环境下执行成功,在有的环境下执行失败?
查看>>
XCL-Chart柱形图的期望线/分界线
查看>>
Linux源码安装过程中选项—prefix的作用
查看>>
[教程]Delphi 中三种回调函数形式解析
查看>>
object not serializable (class: org.apache.kafka.clients.consumer.ConsumerRecord)
查看>>
php过滤字段htmlentities,htmlspecialchars,strip_tags
查看>>
ServiceStack.Redis 使用教程
查看>>
Oracle Drop表并未直接删除 drop table xx purge
查看>>