如何将 Xamarin 表单应用程序与 Azure Directline 语音机器人集成?

问题描述

大家好, 我有一个建立在 azure bot 框架上的机器人,并启用了直线语音通道。 我有一个与机器人通信的 xamarin 表单客户端,并且能够从机器人接收文本响应。 我无法播放来自机器人的原始音频响应。有没有人有这样做的经验? 我真的很感激你的帮助。 谢谢!

下面的代码示例

private void Connector_ActivityReceived
(object sender,ActivityReceivedEventArgs e)
{
    try
    {
        var json = e.Activity;
        var activity = JsonConvert.DeserializeObject<Activity>(json);
        
        if (e.HasAudio && activity.Speak != null)
        { 
           var audio = e.Audio; // How do I play the contents of e.Audio in xamarin forms?
        }

解决方法

根据文档的描述中,PullAudioOutputStream表示存储器备份拉音频输出流。有与音频数据流,你可以使用像一个跨平台的音频播放器进行播放:

var audio = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
audio.Load(stream );
audio.Play();

实施例中发现here

在CrossSimpleAudioPlayer仅有原生的iOS /音频播放的Android功能的抽象,如果你要实现它的其它优选方式本身,你可以使用dependency service注入,并在跨平台使用Xamarin.Forms核心代码。