Java 每个人是如何进行mp3流媒体的?
我正在用java为android编写代码。问题是如何获得mp3文件大小及其音频长度,以便我可以设置我的进度条/搜索条。对事件作出反应 答案可以是头文件或算法中的简单信息 我正在使用androids mediaplayer来流媒体,唯一的问题是寻找需要上述两个方面的东西 感谢您的帮助 我还试着手动查看mp3文件,并用这个noob代码获取标题来解码mp3长度Java 每个人是如何进行mp3流媒体的?,java,android,streaming,mp3,Java,Android,Streaming,Mp3,我正在用java为android编写代码。问题是如何获得mp3文件大小及其音频长度,以便我可以设置我的进度条/搜索条。对事件作出反应 答案可以是头文件或算法中的简单信息 我正在使用androids mediaplayer来流媒体,唯一的问题是寻找需要上述两个方面的东西 感谢您的帮助 我还试着手动查看mp3文件,并用这个noob代码获取标题来解码mp3长度 total = ucon.getContentLength(); //ucon is an HTTPURLconnection is= uco
total = ucon.getContentLength(); //ucon is an HTTPURLconnection
is= ucon.getInputStream();
byte[] buffer = new byte[1024];
is.read(buffer , 0, 1024);
int offset = 1024;
int loc = 2000;
//FrameLengthInBytes = 144 * BitRate / SampleRate + Padding
while(loc == 2000 && offset< total)
{
for(int i = 0 ; i <1024 ;i++ )
{
if((int)buffer[i] == 255)
{
if((int)buffer[i+1] >= 224)
{
loc = i+1;
break;
}
}
}
is.read(buffer , 0, 1024);
offset = 1024 + offset;
}
total=ucon.getContentLength()//ucon是一个HTTPURLconnection
is=ucon.getInputStream();
字节[]缓冲区=新字节[1024];
读(缓冲区,0,1024);
int偏移量=1024;
int loc=2000;
//FrameLengthInBytes=144*比特率/采样率+填充
而(loc==2000&&offset
找不到标记mp3头的模式(111111111xxxxx
)。尝试了不同的文件。找不到别的事做了
更新2:
现在我知道我不必搜索mp3头,而是ID3v2头。但在安卓系统上传输文件时,它仍然可以完成。我真的希望有人能帮助我,现在有很多程序都在做这些事情,我想知道为什么我要这么辛苦。嗯,我从来都不知道ID3标签系统。你用的是什么MP3库?向我们展示你的代码,并描述你被困的地方。你从哪里来?互联网还是文件?我正在android上使用android设备的mediaplayer()播放mp3,并将其与mediacontroller(“)连接。问题是mediacontroller()无法设置mp3歌曲的长度。它会出现以下错误:由于持续时间未知,因此未发送缓冲状态。仍然没有任何结果。这与我面临的错误相同。如果你们建议我尝试重写mediacontroller或mediaplayer类,但我只是一名新开发人员,将需要大量帮助。听起来好像你无法获得aud不下载整个文件的io长度