This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3200AUDBOOST:具有两个流设备的系统

Guru**** 2378650 points
Other Parts Discussed in Thread: CC3200
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/809150/cc3200audboost-system-with-two-streaming-devices

器件型号:CC3200AUDBOOST

尊敬的 Vincent:

我在这里的理解是否正确?

在 wify_audio_app 中、mDNS 广播器是使用服务"CC3200._audio._udp.local"进行广播的扬声器设备。 然后、MIC 侧使用  sl_NetAppDnsGetHostByService 来检测扬声器设备、包括其 IP 地址和服务端口。 是否有理由在扬声器侧进行 mDNS 广播? 我认为这可以在两侧都完成。 根据这一意见,我决定采取以下行动。  

流设备1将使用端口5050上的服务"CC3200._AUDIO_stream1._udp.local"进行广播。流设备2将使用端口5051上的服务"CC3200._AUDIO_stream2._udp.local"进行广播。  

#ifndef 多播
lRetVal = sendto (g_UdpSock.iSockDesc、\
(char*)(pRecordBuffer->puReadPtr)、packet_size、\
0、(struct sockaddr*)&(g_UdpSock.Client)、\
sizeof (g_udpSock.Client);
if (lRetVal < 0)
{
UART_PRINT ("无法发送数据\n\r");
loop_forever ();
}

#else //多播

我想我可以使用来自每个流媒体设备的 sendto 函数将数据发送出去。  

在接收器端,我将使用 GetServiceList()函数或 sl_NetAppDnsGetHostByName()来标识这些特定设备的 IP 地址和服务端口。 我可以使用 Recvfrom 两次来从各自的端口接收每个流。 我可以使用两次接收功能从各个端口读取音频数据。  

这种理解是否对您有意义?  

谢谢

Shavinda  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Shavinda、

    扬声器在 mDNS 上自我广播的想法是、在每个 LP 上、接收任务都是通告其可用性以充当音频数据的接收器。  

    您可以自由地找到其他将设备连接到另一个设备的方法、并且让两个设备分别广播唯一的 mDNS 地址可能起作用。 我认为您计划做的事情在技术上没有任何问题、只是由于地址独特、您将失去灵活性。 该示例背后的理念是、两个 LaunchPad 将运行相同的代码、并且能够同时执行扬声器和麦克风角色。  

    如果您要将服务名称更改为每个 launchpad 唯一的名称、则必须修改每个 launchpad 的示例代码、这有点麻烦。 如果这是可以接受的、那么我不会发现使用您的方法有任何问题。

    如果您需要进一步澄清或有进一步的问题、请告诉我。

    此致、

    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    您建议如何修改以下系统的 wifi 音频示例? 我的意思是、您是否看到了一种代码修改最小的方法?

    该系统将包含两个流设备、它们将提供和流式传输单声道音频源。 音频接收器(扬声器)将单独接收两个音频流、并通过立体声通道输出两个独立的音频流。

    谢谢

    Shavinda  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shavinda、

    您需要修改扬声器任务。 在这里、您需要能够从多个来源获取音频、并将其放置在环形缓冲器中。 如果这些源是单声道的、则应能够将它们放在缓冲器中、然后在回放时、将 I2S 设置为立体声。 理想情况下、您需要确保不会在缓冲器中将2个左声道音频流彼此相邻放置、因为它听起来像是音频在上升。 也许您可以使用缓冲系统来识别流、并确保它交替放置音频。 不过、这将由您来实现。

    此致、

    Vince