繁体   English   中英

Xamarin.Android:如何在Xamarin receipe中使用对照相机

[英]Xamarin.Android : How to use facing camera in Xamarin receipe

我正在基于Xamarin的此收据开发一个应用程序。 我面临的唯一无法克服的问题似乎很基本,但仍然找不到任何线索。

这是我使用的食谱: https : //developer.xamarin.com/recipes/android/media/video/record_video/

我想从后置摄像头切换为面部摄像头。

有人可以帮我这个忙吗?

这是我的代码:

        protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);

        SetContentView (Resource.Layout.Main);

        string path = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/test.mp4";

        var record = FindViewById<Button> (Resource.Id.Record);
        var stop = FindViewById<Button> (Resource.Id.Stop);
        var play = FindViewById<Button> (Resource.Id.Play);       
        var video = FindViewById<VideoView> (Resource.Id.SampleVideoView);

        _player = MediaPlayer.Create(this, Resource.Raw.Non_Mots_1);



        record.Click += delegate {

            video.StopPlayback ();
            _player.Start ();
            recorder = new MediaRecorder ();
            recorder.SetVideoSource (VideoSource.Camera); 
            recorder.SetAudioSource (AudioSource.Mic);              
            recorder.SetOutputFormat (OutputFormat.Default);
            recorder.SetVideoEncoder (VideoEncoder.Default); 
            recorder.SetAudioEncoder (AudioEncoder.Default);      
            recorder.SetOutputFile (path);       
            recorder.SetPreviewDisplay (video.Holder.Surface);         
            recorder.Prepare ();
            recorder.Start ();      
        };

        stop.Click += delegate {

            if (recorder != null) {
                recorder.Stop ();
                _player.Stop();
                recorder.Release ();
            }
        };

        play.Click += delegate {

            var uri = Android.Net.Uri.Parse (path);        
            video.SetVideoURI (uri);
            video.Start ();   
        };
    }

    protected override void OnDestroy ()
    {
        base.OnDestroy ();

        if (recorder != null) {
            recorder.Release ();
            recorder.Dispose ();
            recorder = null;
        }
    }

}

}

尝试使用VideoSource.Surface而不是VideoSource.Camera

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM