1

audio_service 包管理来自 URL 的流式音频。有没有办法同时将音频写入磁盘?

注意:在python中,可以通过调用方法时的设置来做到这一点。我正在寻找一种通过颤振包来做到这一点的方法。stream=Truerequests

4

1 回答 1

1

audio_service 包管理来自 URL 的流式音频。

audio_service 不管理流式音频,它管理您的媒体通知。它的工作方式是:假设您已经编写了一个使用某些插件 XYZ 播放音频的应用程序,但您现在只想添加一个媒体通知,以便可以从后台控制您的应用程序。然后你使用 audio_service 来包装你的“现有”音频代码。

因此,您的问题实际上是关于如何处理 audio_service 包装的现有音频代码。

如果您正在关注audio_service官方示例,它演示了使用just_audio插件从URL流式传输音频,所以让我们回答这个问题。您可以使用 just_audio 轻松修改官方示例LockCachingAudioSource

因此,例如,每当您在该示例中看到AudioSource.uri时,只需将该代码替换为LockCachingAudioSource,它就会执行您想要的操作。而已。

但是为了更详细地展示一些功能LockCachingAudioSource,这里有一个关于它工作方式的简短演示:

final source = LockCachingAudioSource(Uri.parse(url));
await player.setAudioSource(source);
await player.play();

缓存文件的位置默认由插件选择,但您可以在此处获取:

final cacheFile = await source.cacheFile;

您可以使用以下方法清除缓存:

await source.clearCache();

如果要选择缓存文件的位置,可以在构建源时这样做:

final source = LockCachingAudioSource(
  Uri.parse(url),
  cacheFile: File('/your/preferred/path.mp3'),
);
于 2021-11-07T02:49:12.043 回答