将音频流保存到磁盘的推荐方法
Recommended way to save audio stream to disk
audio_service 包管理来自 URL 的流式音频。有没有办法同时将音频写入磁盘?
注意:在python中,调用requests
方法时,通过设置stream=True
来设置一个can do this。我正在寻找一种通过 flutter 包来做到这一点的方法。
The audio_service package manages streaming audio from a 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'),
);
audio_service 包管理来自 URL 的流式音频。有没有办法同时将音频写入磁盘?
注意:在python中,调用requests
方法时,通过设置stream=True
来设置一个can do this。我正在寻找一种通过 flutter 包来做到这一点的方法。
The audio_service package manages streaming audio from a 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'),
);