2017-01-28 27 views
1

我只是试图在我的Android应用程序中拆分ShoutCast提供的元数据(艺术家 - 歌曲)。我处理这个代码的工作正常(大约5个月,然后管理员更新了shoutcast平台),直到现在。我认为新的Shoutcast版本改变了元数据格式并添加了一些特殊字符(可能是空格)。试图从ShoutCast中拆分元数据

这是我当前的代码,这是工作完美:

String meta_an = ""; 

artist_name.setText(meta_an.split("-")[0]); 
song_name.setText(meta_an.split("-")[1]); //here is the error, index 1 

事实上,两个字符串之间的分隔符为“ - ”,但这些线路正在做的工作。

这是一个元数据的例子:“道林·格雷 - Sjajü塔米”

您可以点击此处查看: http://shoutcast.pondi.hr:8000/currentsong?sid=1

我想,有在元数据的开头没有空格,只在中间。

在另一方面,我抓住这个错误:

enter image description here

+1

可能有一个不包含一些元数据 - 是的,它包含字符 –

+0

“ - ”,它适用于第一串[0],而[1] –

+1

如果没有“ - ”字符分割“”方法返回一个元素的数组,所以你只会得到艺术家的名字 –

回答

1

的问题是,Shoutcast的在元数据开始播放流时,只返回一个字符串,该电台的名字, (无线电),所以这第一个元数据不包含“ - ”字符,并且split函数只是创建一个字符串。我添加了一个条件来检查元数据是否包含“ - ”字符,如果是这样,这意味着拆分函数可以创建2个字符串,并且我可以从0(艺术家)和1(歌曲)索引中获取值。