【问题标题】:How to pick short video from gallary and Record Short Video using camera in android如何从图库中选择短视频并在 android 中使用相机录制短视频
【发布时间】:2020-12-15 06:33:26
【问题描述】:

如何在我的安卓应用中添加短视频功能?

【问题讨论】:

  • 如果回复有帮助,请采纳为答案(点击该答案左上角的“✔”),对有类似问题的其他人有帮助

标签: android visual-studio xamarin.android


【解决方案1】:

首先,您需要将相关的添加到Manifest.xml

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

在后面的代码中

我们可以使用nuget的插件Media.Plugin来实现这个功能。

using Android;
using Android.Content.PM;
using Plugin.Media;

App首次加载时请求权限。

在 MainActivity -> 创建时

if (!(this.CheckSelfPermission(Manifest.Permission.Camera) == (int)Permission.Granted))
{
      RequestPermissions(new string[] { Manifest.Permission.Camera, Manifest.Permission.WriteExternalStorage, Manifest.Permission.ReadExternalStorage }, 0);
}

拍摄视频

    //record video
    private async void RecordVideoButtonClick(object sender, EventArgs eventArgs)
    {
        if (this.CheckSelfPermission(Manifest.Permission.Camera) == (int)Permission.Granted)
        {
            // We have permission, go ahead and use the camera.

            await CrossMedia.Current.Initialize();

            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {
                //"No Camera"
                return;
            }

            // take video
            var file = await CrossMedia.Current.TakeVideoAsync(new Plugin.Media.Abstractions.StoreVideoOptions
            {
                Quality = Plugin.Media.Abstractions.VideoQuality.High,
                
            });

            if (file == null)
                return;
        }

        else
        {
            // Camera permission is not granted. If necessary display rationale & request.
            
        }


    }

选择视频

    //pick video
    private async void PickVideoButtonClick(object sender, EventArgs eventArgs)
    {
        if (this.CheckSelfPermission(Manifest.Permission.Camera) == (int)Permission.Granted)
        {
            // We have permission, go ahead and use the camera.

            await CrossMedia.Current.Initialize();

            // take video
            var file = await CrossMedia.Current.PickVideoAsync();

            if (file == null)
                return;


        }

        else
        {
            // Camera permission is not granted. If necessary display rationale & request.

        }


    }

【讨论】:

    猜你喜欢
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多