2017-01-28 7 views
1

Android App에서 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 U 태미는"

당신은 여기에서 확인할 수 있습니다 : http://shoutcast.pondi.hr:8000/currentsong?sid=1

을 난 그냥, 메타 데이터의 시작 부분에는 공백이 없음을 가정 중간에.

한편

, 나는이 오류 잡기 오전 : 스트림을 재생 시작할 때

enter image description here

+1

"-"문자가 포함되지 않은 일부 메타 데이터가있을 수 있습니다. –

+0

예, "-"가 포함되어 있습니다. 첫 번째 문자열 [0]에 대해 작동하지만 [1] –

+1

"-"문자가 없으면 메서드 반환 배열 하나의 요소, 그래서 당신은 예술가 이름을 얻을 것이다 –

답변

1

문제는하는 Shoutcast가 메타 데이터에 하나의 문자열을 반환 하였다 있음을, 라디오의 이름, (라디오)이므로 첫 번째 메타 데이터에는 "-"문자가 포함되지 않았으며 split 함수는 단지 하나의 문자열을 만드는 것이 었습니다. 메타 데이터에 "-"문자가 포함되어 있는지 확인하기 위해 조건을 추가했습니다. 그렇다면 분할 함수가 2 개의 문자열을 만들 수 있고 0 (아티스트) 및 1 (노래) 색인에서 값을 가져올 수 있음을 의미합니다.