Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 返回要使用AudioTrack播放的曲目的长度(以秒为单位)_Java_Android_Audio_Audio Streaming - Fatal编程技术网

Java 返回要使用AudioTrack播放的曲目的长度(以秒为单位)

Java 返回要使用AudioTrack播放的曲目的长度(以秒为单位),java,android,audio,audio-streaming,Java,Android,Audio,Audio Streaming,我试图实现大多数媒体播放器的功能,一种显示音频曲目总时间以及当前播放时间(每秒增加一次)的方式。我很确定我必须使用线程,但我不确定如何使用。我把音轨保存在sd卡上,播放时将所有数据放入一个短阵列中 理想情况下,我也希望能够使用progressBar显示进度,我不认为从在TextView中显示进度到使用进度条是一个巨大的进步。我在互联网上到处找了找,我发现所有的例子(虽然含糊不清)都使用了MediaPlayer,但由于我使用的是audioTrack,我想这会让它变得更加困难。在我的应用程序中,我无

我试图实现大多数媒体播放器的功能,一种显示音频曲目总时间以及当前播放时间(每秒增加一次)的方式。我很确定我必须使用线程,但我不确定如何使用。我把音轨保存在sd卡上,播放时将所有数据放入一个短阵列中

理想情况下,我也希望能够使用progressBar显示进度,我不认为从在TextView中显示进度到使用进度条是一个巨大的进步。我在互联网上到处找了找,我发现所有的例子(虽然含糊不清)都使用了MediaPlayer,但由于我使用的是audioTrack,我想这会让它变得更加困难。在我的应用程序中,我无法使用MediaPlayer来处理音频


有人能帮我解决问题或给我指出正确的方向吗?

鉴于没有人能回答我的问题,我使用了一种粗糙的方法来计算音频曲目的时间(以秒为单位)。知道我自己用我提供的设置录制了曲目,我知道比特率,也可以得到文件大小

因此,创建一个文件对象,然后将该对象设置为存储器中的文件,以获取使用时间(以秒为单位):

float time = (float)file.length()/22050/2;
其中22050是录音的采样率,我想是2,因为它是用立体声录音的

无论如何,希望这对将来的任何人都有帮助,如果我有任何错误,请纠正我。

浮点时间=(float)file.length()/playbacksamplerate/2

2用于将短字节转换为字节 采样率应该是您为在音频轨迹对象上播放而设置的量