Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-捕获无线电音频并将音频保存到流缓冲区/文件中_Java_Android_Audio Streaming_Audio Recording - Fatal编程技术网

Java Android-捕获无线电音频并将音频保存到流缓冲区/文件中

Java Android-捕获无线电音频并将音频保存到流缓冲区/文件中,java,android,audio-streaming,audio-recording,Java,Android,Audio Streaming,Audio Recording,使用安卓系统,是否有办法从以下无线频道捕获音频:http://nis.stream.publicradio.org/nis.mp3进入流缓冲区 更进一步说,我的目标是将播放音频的最后5分钟(最多)保存到一个文件中。例如,收音机可以播放收音机X秒/分钟/小时(无论什么)。如果播放时间超过5分钟,则保存的文件将保留最后5分钟。如果播放时间较小,则保存的文件将具有完整的播放时间 我不知道是否要得到这个结果,我需要使用一些数据结构,比如循环缓冲区,存储音频块,并移动指针 你能给我一些关于Android平

使用安卓系统,是否有办法从以下无线频道捕获音频:http://nis.stream.publicradio.org/nis.mp3进入
流缓冲区

更进一步说,我的目标是将播放音频的
最后5分钟(最多)保存到一个文件中。例如,收音机可以播放收音机X秒/分钟/小时(无论什么)。如果播放时间超过5分钟,则保存的文件将保留最后5分钟。如果播放时间较小,则保存的文件将具有完整的播放时间

我不知道是否要得到这个结果,我需要使用一些
数据结构
,比如
循环缓冲区
,存储
音频块
,并移动
指针


你能给我一些关于Android平台的想法吗?

你也在播放这个音频吗?最简单的方法就是从URL中记录5分钟的数据…记录应该一直持续,直到用户按stop。应用程序不知道用户何时按下停止按钮。只能录制5分钟的音频。这就是为什么我说也许使用某种循环缓冲会很有趣。可能用户在一天、一周或一个月后按下停止按钮,我无法录制一个月的音频来获取最后5分钟。有什么想法吗?问题是,你真的需要5分钟的音频,还是5分钟的数据?这很重要的原因是,如果你需要5分钟的音频,你必须对它进行解码以正确计算时间。听起来你只需要一大块音频,大约5分钟,你只需将数据保存5分钟就可以得到。启动流,保留一个缓冲区,5分钟后,停止增加缓冲区大小并循环写入。但是要小心可变比特率流。不需要精确的5分钟,它可以是5分钟或更多:5分钟3秒,5分钟20秒,或5分钟45秒。如果录制时间超过5分钟,则不能少于5分钟。当然,如果用户开始录制并在3分钟后停止录制,那么结果可能是3分钟左右,在这种情况下,可以接受的数据会多于或少于3分钟。只需录制5分钟的数据即可。您将获得5分钟的音频,加上流开头的缓冲区长度。