124 lines
4.3 KiB
C#
124 lines
4.3 KiB
C#
using Camera.MAUI;
|
|
using DuoDuo.Services;
|
|
|
|
namespace DuoDuo
|
|
{
|
|
public partial class MainPage : ContentPage
|
|
{
|
|
private readonly AgentService _agentService;
|
|
private readonly CameraService _cameraService;
|
|
|
|
public MainPage(AgentService agentService,CameraService cameraService)
|
|
{
|
|
InitializeComponent();
|
|
_agentService = agentService;
|
|
_cameraService = cameraService;
|
|
BindingContext = agentService.MainPageModel;
|
|
|
|
cameraView.CamerasLoaded += CameraView_CamerasLoaded;
|
|
}
|
|
|
|
private void CameraView_CamerasLoaded(object? sender, EventArgs e)
|
|
{
|
|
if (cameraView.NumCamerasDetected > 0)
|
|
{
|
|
if (cameraView.NumMicrophonesDetected > 0)
|
|
cameraView.Microphone = cameraView.Microphones.First();
|
|
cameraView.Camera = cameraView.Cameras.First();
|
|
//cameraView.Camera = cameraView.Cameras[1];
|
|
MainThread.BeginInvokeOnMainThread(async () =>
|
|
{
|
|
if (await cameraView.StartCameraAsync(new Size(320,240)) == CameraResult.Success)
|
|
{
|
|
//controlButton.Text = "Stop";
|
|
//playing = true;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
private void ImageButton_Pressed(object sender, EventArgs e)
|
|
{
|
|
_ = Task.Run(async () =>
|
|
{
|
|
var stream = await cameraView.TakePhotoAsync();
|
|
if (stream != null)
|
|
{
|
|
using var memoryStream = new MemoryStream();
|
|
await stream.CopyToAsync(memoryStream);
|
|
byte[]? imageData = memoryStream.ToArray();
|
|
Global.PhotoData = imageData;
|
|
XiaoZhiSharp.Services.ImageStorageService imageStorageService = new XiaoZhiSharp.Services.ImageStorageService();
|
|
await imageStorageService.PostImage("https://coze.nbee.net/image/v1/stream/" + Global.DeviceId, "", Global.DeviceId, Global.ClientId, imageData);
|
|
}
|
|
});
|
|
|
|
_ = Task.Run(async () =>
|
|
{
|
|
await _agentService.Agent.StartRecording();
|
|
});
|
|
}
|
|
|
|
private void ImageButton_Released(object sender, EventArgs e)
|
|
{
|
|
_ = Task.Run(async () =>
|
|
{
|
|
await _agentService.Agent.StopRecording();
|
|
});
|
|
//_ = Task.Run(async () =>
|
|
//{
|
|
// await _agentService.Agent.ChatMessage("你好");
|
|
//});
|
|
}
|
|
|
|
private void SettingButton_Pressed(object sender, EventArgs e)
|
|
{
|
|
//_ = Task.Run(async () =>
|
|
//{
|
|
// await _agentService.Agent.StartRecording();
|
|
//});
|
|
}
|
|
|
|
private void SettingButton_Released(object sender, EventArgs e)
|
|
{
|
|
_ = Task.Run(async () =>
|
|
{
|
|
await _agentService.Agent.ChatAbort();
|
|
});
|
|
//_ = Task.Run(async () =>
|
|
//{
|
|
// await _agentService.Agent.ChatMessage("你好");
|
|
//});
|
|
}
|
|
|
|
private void CameraButton_Pressed(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void CameraButton_Released(object sender, EventArgs e)
|
|
{
|
|
_ = Task.Run(async () =>
|
|
{
|
|
var stream = await cameraView.TakePhotoAsync(Camera.MAUI.ImageFormat.JPEG);
|
|
if (stream != null)
|
|
{
|
|
using var memoryStream = new MemoryStream();
|
|
await stream.CopyToAsync(memoryStream);
|
|
byte[]? imageData = memoryStream.ToArray();
|
|
Global.PhotoData = imageData;
|
|
XiaoZhiSharp.Services.ImageStorageService imageStorageService = new XiaoZhiSharp.Services.ImageStorageService();
|
|
await imageStorageService.PostImage("https://coze.nbee.net/image/v1/stream/" + Global.DeviceId, "", Global.DeviceId, Global.ClientId, imageData);
|
|
await Task.Run(async () =>
|
|
{
|
|
await _agentService.Agent.ChatMessage("拍张照片,看看是什么?");
|
|
});
|
|
|
|
|
|
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|