2017-01-28 5 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つの要素を持つ配列を返すので、アーティスト名のみを取得します –

答えて

1

問題は、Shoutcastは、メタデータでただ1つの文字列ストリームを再生し始め、ラジオの名前を返したことで、 (ラジオ)ので、この最初のメタデータには " - "文字が含まれておらず、split関数はただ1つの文字列を作成していました。メタデータに " - "文字が含まれているかどうかをチェックする条件を追加しました。もしそうなら、分割関数が2つの文字列を作ることができ、0(アーティスト)と1(曲)のインデックスから値を取得できます。

関連する問題