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


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

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

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


    (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<MediaCapture> 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;
    }
  • 相关阅读:
    3.1 history跳转页面产生跨域问题
    2021年6月7日 团队冲刺第二阶段04
    2021年6月6日 团队冲刺第二阶段03
    2021年6月5日 团队冲刺第二阶段02
    2021年6月4日 团队冲刺第二阶段01
    2021年6月3日
    2021年6月2日
    2021年6月1日
    2021年5月31日
    2021年5月30日
  • 原文地址:https://www.cnblogs.com/xiaoshi3003/p/3784167.html
Copyright © 2020-2023  润新知