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

Windows Phone 8.1 多媒体(1):相片

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

Windows Phone 8.1 多媒体(3):音乐


(1)拍摄视频

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

  1. MediaCapture mediaCapture;
  2. MediaEncodingProfile videoEncodingProperties;
  3.  
  4. protected override async void OnNavigatedTo(NavigationEventArgs e)
  5. {
  6. HardwareButtons.CameraHalfPressed += HardwareButtons_CameraHalfPressed;
  7. HardwareButtons.CameraReleased += HardwareButtons_CameraReleased;
  8.  
  9. videoCaptrueElement.Source = await Initialize();
  10. await mediaCapture.StartPreviewAsync();
  11. }
  12.  
  13. async void HardwareButtons_CameraHalfPressed(object sender, CameraEventArgs e)
  14. {
  15. if( mediaCapture != null )
  16. {
  17. var video = await KnownFolders.VideosLibrary.CreateFileAsync("video.mp4", CreationCollisionOption.GenerateUniqueName);
  18. await mediaCapture.StartRecordToStorageFileAsync(videoEncodingProperties, video);
  19. }
  20. }
  21.  
  22. async void HardwareButtons_CameraReleased(object sender, CameraEventArgs e)
  23. {
  24. if( mediaCapture != null )
  25. {
  26. await mediaCapture.StopRecordAsync();
  27. }
  28. }
  29.  
  30. private async Task<MediaCapture> Initialize()
  31. {
  32. mediaCapture = new MediaCapture();
  33. await mediaCapture.InitializeAsync();
  34.  
  35. mediaCapture.VideoDeviceController.PrimaryUse = CaptureUse.Video;
  36.  
  37. videoEncodingProperties = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Vga);
  38.  
  39. return mediaCapture;
  40. }
  41.  
  42. protected override void OnNavigatedFrom(NavigationEventArgs e)
  43. {
  44. if( mediaCapture != null )
  45. {
  46. mediaCapture.Dispose();
  47. mediaCapture = null;
  48. }
  49. }

(2)编辑视频

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

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

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

(3)录制手机屏幕视频

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

  1. var screenCapture = ScreenCapture.GetForCurrentView();
  2.  
  3. mediaCapture = new MediaCapture();
  4. await mediaCapture.InitializeAsync(new MediaCaptureInitializationSettings
  5. {
  6. VideoSource = screenCapture.VideoSource,
  7. AudioSource = screenCapture.AudioSource,
  8. });
  9.  
  10. var file = await KnownFolders.VideosLibrary.CreateFileAsync("screenrecording.mp4", CreationCollisionOption.ReplaceExisting);
  11. await mediaCapture.StartRecordToStorageFileAsync(MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Auto), file);

停止录制:

  1. if( mediaCapture != null )
  2. {
  3. await mediaCapture.StopRecordAsync();
  4. mediaCapture.Dispose();
  5. mediaCapture = null;
  6. }

Windows Phone 8.1 多媒体(2):视频的更多相关文章

  1. Windows Phone 8.1 多媒体(3):音乐

    原文:Windows Phone 8.1 多媒体(3):音乐 Windows Phone 8.1 多媒体(1):相片 Windows Phone 8.1 多媒体(2):视频 Windows Phone ...

  2. Windows Phone 8.1 多媒体(1):相片

    原文:Windows Phone 8.1 多媒体(1):相片 Windows Phone 8.1 多媒体(1):相片 Windows Phone 8.1 多媒体(2):视频 Windows Phone ...

  3. HTML5 多媒体音视频处理

    HTML5 多媒体音视频处理 版权声明:未经博主授权,内容严禁转载 ! 音频处理 - audio HTML5 Audio 音频 目前大多数音频是通过哦插件的形式来播放的. 不同浏览器在网页上播放音频的 ...

  4. Windows及Android倍速播放视频软件下载

    目录 1. 更多推荐 2. 关键字 3. 按 4. 软件下载 4.1. IOS应用商店 4.2. 网盘下载 5. 软件介绍 5.1. PotPlayer(Windows) 5.2. MoboPlaye ...

  5. C# Winform使用Windows Media Player播放多媒体整理

    一.简单使用示例步骤 1.添加Windows Media Player 组件当前是系统的 Com组件 工具箱>右键“选择项”>选择Com组件 2.控件拖拽到桌面,使用 private vo ...

  6. 在Windows下搭建基于nginx的视频直播和点播系统

    http://my.oschina.net/gaga/blog/478480 一.软件准备 由于nginx原生是为linux服务的,因此官方并没有编译好的windows版本可以下载,要在windows ...

  7. Android学习笔记_27_多媒体之视频刻录

    一.配置文件: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android= ...

  8. Python玩转各种多媒体,视频、音频到图片

    我们经常会遇到一些对于多媒体文件修改的操作,像是对视频文件的操作:视频剪辑.字幕编辑.分离音频.视频音频混流等.又比如对音频文件的操作:音频剪辑,音频格式转换.再比如我们最常用的图片文件,格式转换.各 ...

  9. C# / VB.NET 在Word中嵌入多媒体(视频、音频)文件

    Word中可将Office(Word/Excel/PowerPoint).PDF.txt等文件作为OLE对象插入到文档中,双击该对象可直接访问或编辑该文件,除了以上常见的文件格式对象,也可以插入多媒体 ...

随机推荐

  1. C# 读取IE缓存文件(2)

    private void button1_Click(object sender, EventArgs e) { , nBufSize; IntPtr buf; INTERNET_CACHE_ENTR ...

  2. 第十七章——配置SQLServer(1)——为SQLServer配置更多的处理器

    原文:第十七章--配置SQLServer(1)--为SQLServer配置更多的处理器 前言: SQLServer提供了一个系统存储过程,SP_Configure,可以帮助你管理实例级别的配置.微软建 ...

  3. android代码集EditText只要输入号码、信

     如何设置EditText,因此,只有某些数字或字母可以进入它? 一.建立EditText,只要输入号码: 办法1:直接生成DigitsKeyListener了. et_1.setKeyListe ...

  4. 移动端 transition动画函数的封装(仿Zepto)以及 requestAnimationFrame动画函数封装(仿jQuery)

    移动端 css3 transition 动画 ,requestAnimationFrame 动画  对于性能的要求,h5优先考虑: 移动端 单页有时候 制作只用到简单的css3动画即可,我们封装一下, ...

  5. AndroidAndroid程序提示和消息button响应事件

    首先,接口XML加入button响应函数 android:onClick="OnMyClick" <Button android:id="@+id/button1& ...

  6. Swift 编程语言学习0.1——Swift简单介绍

    有的时候,认为看英文文档有些费时,看中文文档怕翻译不准,有些地方确实不须要抠字眼.当有些地方假设翻译不精准会产生歧义,所以用这样对比的方式.顺便学习一下Swift. Swift is a new pr ...

  7. HDU 2112 HDU Today (Dijkstra算法)

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  8. css Tab选项卡1

    利用   锚点原理 以及overflow:hiden 结合,实现纯  css  tab 方式 兼容ie6 + 适合单个tab   不需要js          注意点  红色方框的   a 对应a   ...

  9. Android使用SVG矢量创建很酷的动态效率!

    尊重原创,欢迎转载.转载请注明: FROM  GA_studio   http://blog.csdn.net/tianjian4592 一个真正酷炫的动效往往让人虎躯一震,话不多说.咱们先瞅瞅效果: ...

  10. Spring相框:AOP详细说明

    AOP中国的名字叫做面向方面编程.这个名字是很形象.因为你真的可以把像面包切系统.并直接增加面包的修改.科而异,对整个系统,小到一定的方法. AOP它有什么用?有关示例,各组分可以含有安全.事务.,A ...