私はテキストファイルである "yyyyyyy.com/test.txt"というURLを持っています。 これには、.mp3オーディオのURLが含まれています。Android - URLで文字列を入力する
yyyyyyy.de/1.mp3
yyyyyyy.de/2.mp3
yyyyyyy.de/3.mp3 //exactly like that
私の意図このテキストファイルの各行を読んで、
urls[0]=yyyyyyy.de/1.mp3
urls[1]=yyyyyyy.de/2.mp3 ...
このような配列に格納しました。
String[] urls;
int i=0;
Random rand;
int min=0;
int max=5; // I have 6 Urls in the text file
int randomNum;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rand = new Random();
randomNum = rand.nextInt((max - min) + 1) + min; //generates integer between 0-5
try {
// Create a URL for the desired page
URL url = new URL("yyyyy.de/test.txt"); //My text file location
// Read all the text returned by the server
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
urls[i]=str;
i++;
}
in.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
boolean isPLAYING = false;
if (!isPLAYING) {
isPLAYING = true;
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource(urls[randomNum]);
mp.prepare();
mp.start();
} catch (IOException e) {
}
} else {
isPLAYING = false;
}
}
私はすでにManifest.xmlにandroid:権限を追加しています。問題がどこにある は、私にはわからない...アプリは、自分自身を閉じ、このライン「mp.setDataSource(urls[randomNum]);
は」
ここでLogCat間違っていることを私に伝えます :事前にhttp://textuploader.com/5iw5b 感謝!!
嘆願e post error log – Arjun
2つのこと:1) 'urls'配列を作成した後に' randomNum'を生成して、初期化できるようにします(0から 'urls.size()')。そうすれば、ファイル内の行を追加したり削除したりするときに、プログラムの 'max'の値を変更する必要はありません。 2)あなたのプログラムをデバッグして、 'urls'にあるエントリの数を確認してください。デバッグ方法がわからない場合は、代わりにprintステートメントを入れてください。 –
ドキュメントから、 'void setDataSource(String path)'の主な例外は 'IllegalStateException'、' IOException'、 'IllegalArgumentException'、' SecurityException'です。 LogCatのエラーログ、または私たちがあなたを助けるための追加情報を私たちに提供しなければなりません。また、URLにアクセスすると、サーバーからの返信は何ですか?バイナリ、エンコードされたテキストなど?私はエラーログ@ Dr.Nitpickをアップロードしました1)ありがとう2)それを取得していない、あなたのアプリケーションを中断する可能性があります(例えば、300のHTTP応答) – Bonatti