无法让SoX播放带有查询参数的mp3流

时间:2017-09-15 22:07:49

标签: python-2.7 sox

我正在尝试将AlexaPi与SoX一起用作音频处理器(因为它具有VLC所缺乏的效果)。在大多数情况下它都有效,但是我发现它在一些Alexa请求上失败了,因为Alexa在URL之后返回一个带有所需查询参数的URL,并且SoX将整个字符串放在“。”之后。是文件类型。以下是AlexaPi的main.py例程生成的错误消息示例:

2017-09-15 17:51:50 DEBUG: Error attempting play. sox FAIL formats: no handler for file extension `mp3?Expires=1505541107&Signature=g~nHwqbFYxYYPd3WHHYgDdM2Ukvw0J9OICcBI2Jq9M6ORM7pLp97pwt4I3k-S76f3EUC-543csgXOsbRboqXl8RQqqrp3~xxsegy6E-7Y4Fq2itICT14SsmLxXMTr3WRxzOaCujqhvX7vaUENBgH2Tg47RKRqvQTkx5g44iBokRsEgwcFNdQdEKllzfN1I~srBroUMy97XL1NYUVcOPeuRG0ctmu3jsxgKVlONhanc1AHx8wqqU9dJvGcl3OtyD2vw7lRxE2f6aUavgm0ayKpkmVdJyczsk5yJlIMSawjCMoUkLpQrHaU4EzI0w5YsQLggjQEe5KAlsHlNTKY8eRmg__&Key-Pair-Id=APKAJMAIYIGWWT37OIHA'

有关如何解决此问题的任何想法?到期,签名和密钥对ID都是从亚马逊获取响应所必需的,所以我不能简单地将它们剥离。

1 个答案:

答案 0 :(得分:0)

没关系,我明白了。您只需要在调用URL字符串之前显式指定文件类型,即“-t mp3”。对于URL,SoX是可以的,它只是无法弄清楚它是什么类型的声音文件,因为.mp3之后的查询字符串。如果你明确地告诉它类型,那就是你所说的。