问题描述
大家好, 我有一个建立在 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核心代码。