2

Xamarin Forms PCL でカメラにアクセスする必要があります。動作するサンプルが見つかりませんでした。

XLabをインストールしてそのサンプル コードを使用してみましたが、例外があります。たとえば、XLabs サンプルでは、​​次のものを使用しています。

/// <summary>
/// Takes the picture.
/// </summary>
/// <returns>Take Picture Task.</returns>
internal async Task<MediaFile> TakePicture()
{
    Setup();

    ImageSource = null;

    return await _mediaPicker.TakePhotoAsync(new CameraMediaStorageOptions { DefaultCamera = CameraDevice.Front, MaxPixelDimension = 400 }).ContinueWith(t =>
    {
        if (t.IsFaulted)
        {
            Status = t.Exception.InnerException.ToString();
        }
        else if (t.IsCanceled)
        {
            Status = "Canceled";
        }
        else
        {
            var mediaFile = t.Result;

            ImageSource = ImageSource.FromStream(() => mediaFile.Source);

            return mediaFile;
        }

        return null;
    }, _scheduler);
}

/// <summary>
/// Setups this instance.
/// </summary>
private void Setup()
{
    if (_mediaPicker != null)
    {
        return;
    }

    var device = Resolver.Resolve<IDevice>();

    ////RM: hack for working on windows phone? 
    _mediaPicker = DependencyService.Get<IMediaPicker>() ?? device.MediaPicker;
}

次の例外が発生しますResolver.Resolve<IDevice>(): IResolver has not been set. Please set it by calling Resolver.SetResolver(resolver)

Xamarin.Forms で写真を撮るために、この方法または他の方法を使用するにはどうすればよいですか? 事前にヒントをありがとう!

4

4 に答える 4

2

xLabs Camera のサンプル コードは次のとおりです :
https://www.dropbox.com/s/9paojg1q43ahnqk/XPA_PickMedia_XLabs_XFP.zip?dl=0 /a-sample-project-using-camera-control-mediapicker-of-xlabs

于 2015-07-23T15:47:21.827 に答える
1

Xamarin.Forms のネイティブ機能に直接アクセスすることはできません。Camrera、オーディオなどへのアクセスなどのネイティブ機能にアクセスするには、 Dependency Serviceを使用する必要があります。

これを試してください: http://developer.xamarin.com/guides/cross-platform/xamarin-forms/dependency-service/

于 2015-07-12T16:09:47.620 に答える
0

IoC を機能させるには、IoC を構成し、Resolver.SetResolver メソッドを使用して IoC プロバイダーをリゾルバーに設定する必要があります。詳細については、https://github.com/XLabs/Xamarin-Forms-Labs/wiki/IOCをご覧ください。

于 2015-07-11T12:19:04.057 に答える