我想我可能知道答案,但是:
我正在构建一个需要用户拍照的应用。客户希望从应用程序界面中拍摄照片,这样他们的品牌就会保留,他们可以使用自定义快门图标等。
我正在评估PhoneGap和Xamarin,但到目前为止,我只能找到如何启动设备默认相机应用程序并从那里取回照片。
使用deault相机应用程序查看很多应用程序,所以我猜测我正在寻找的可能超出这些框架,如Xamarin和Phone Gap。
如果我们不是本地建设,那么还有办法做客户想要的吗?
感谢您的帮助。
答案 0 :(得分:2)
Xamarin应用程序是一个原生应用程序,你可以从ObjC做什么,你可以用C#和Xamarin做。将视频捕获附加到UIView非常简单,一种方法是使用AVCaptureVideoPreviewLayer。
创建一个新项目并将其复制到视图控制器ViewDidLoad方法,你应该得到一个带有按钮的视频覆盖:
public override void ViewDidLoad()
{
base.ViewDidLoad();
// Perform any additional setup after loading the view, typically from a nib.
var captureSession = new MonoTouch.AVFoundation.AVCaptureSession();
var previewLayer = new MonoTouch.AVFoundation.AVCaptureVideoPreviewLayer(captureSession)
{
LayerVideoGravity = MonoTouch.AVFoundation.AVLayerVideoGravity.ResizeAspectFill,
Frame = this.View.Bounds
};
var device = MonoTouch.AVFoundation.AVCaptureDevice.DefaultDeviceWithMediaType(
MonoTouch.AVFoundation.AVMediaType.Video);
NSError error;
var input = new MonoTouch.AVFoundation.AVCaptureDeviceInput(device, out error);
captureSession.AddInput(input);
this.View.Layer.AddSublayer(previewLayer);
var button = new UIButton(new RectangleF(0, 0, this.View.Bounds.Width, 100));
button.SetTitle("My button", UIControlState.Normal);
button.TouchUpInside += (sender, e) =>
{
System.Diagnostics.Debug.WriteLine("Take a still picture here");
};
this.View.Add(button);
captureSession.StartRunning();
}
答案 1 :(得分:0)
Xamarin不使用"默认相机应用"拍照 - 你可以留在你的应用程序中 - 但默认情况下它使用标准的iOS Camera控件。如果你想自定义它们,你可以。来自Xamarin的这个sample使用自定义叠加层(我还没有尝试过,我依赖于评论)