423165987 发表于 2020-9-20 14:39:56

qcc3031如果动态切换spdif和I2S输出?

有个需求是按键切换音源输出类型。
求高手指点。

似火年华 发表于 2020-9-21 09:27:46

最近也在搞这个,没有什么头绪

394645065 发表于 2020-9-21 10:44:55

大概原理是:SPDIF chain stop-->SPDIF chain destory-->Power Off DSP-->Power On DSP-->I2S chain connect-->I2S chain start

basketcase 发表于 2020-9-21 17:38:15

本帖最后由 basketcase 于 2020-9-23 15:45 编辑

QCC3031我记得是sink的吧,给你参考一下

void sinkAudioDestroyRoutedAudioInstance(void)
{
        if(AUDIO_GDATA.routed_audio_instance)
        {
                AudioDisconnectInstance(AUDIO_GDATA.routed_audio_instance);
            AUDIO_GDATA.routed_audio_instance = NULL;
        }
   
}
有人私信我说这个函数缺失,补上去,因为实在是年代久远了,我都忘记是我加上去的还是自带的了




    gMultiChannelConfig->mapping.endpoint.type = audio_output_type_spdif;/* audio_output_type_i2s */
    gMultiChannelConfig->mapping.endpoint.type = audio_output_type_spdif;

    /* get the status of the a2dp links */
    getA2dpStreamData(a2dp_primary,   &a2dpSinkPri, &a2dpStatePri);
   
    if((sinkAudioGetRoutedAudioSink() == a2dpSinkPri)&&(a2dpStatePri == a2dp_stream_streaming))
    {
      sinkAudioDestroyRoutedAudioInstance();
      audioRouteSpecificA2dpSource(audio_source_a2dp_1);
    }

423165987 发表于 2020-9-21 20:03:01

basketcase 发表于 2020-9-21 17:38
QCC3031我记得是sink的吧,给你参考一下

这里吗? 不好意思,比较菜,没看出来是切换输出方式的。

basketcase 发表于 2020-9-21 20:47:32

本帖最后由 basketcase 于 2020-9-21 20:50 编辑

btdev 发表于 2020-9-21 20:03
这里吗? 不好意思,比较菜,没看出来是切换输出方式的。
这里是两个手机同时连上的时候切换手机的,切换输出的配置在gMultiChannelConfig这里。你要换成什么通道就改audio_output_type_spdif这个就行了。可能还要考虑两个手机同时连接的情况,不过这个优化一下就行了。

似火年华 发表于 2020-9-22 17:29:06

把音频挂起来的时候会panic

423165987 发表于 2020-9-22 18:25:25

似火年华 发表于 2020-9-22 17:29
把音频挂起来的时候会panic

有啥好方法。

似火年华 发表于 2020-9-23 10:24:46

void sinkAudioReconnect(void)
{
        a2dp_stream_state a2dpStatePri;
        Sink a2dpSinkePri = 0;
        getA2dpStreamData(a2dp_primary, &a2dpSinkePri, &a2dpStatePri);
    if(sinkAudioGetRoutedAudioSink() == a2dpSinkePri)
        {
                audioDisconnectRoutedAudio();
                audioRouteSpecificA2dpSource(audio_source_a2dp_1);
        }
}
我一调用这个函数就会panic,函数是自己写的

Dark_moon 发表于 2020-10-1 09:35:46

楼主辛苦了,感谢分享。
页: [1] 2
查看完整版本: qcc3031如果动态切换spdif和I2S输出?