У меня есть url "yyyyyyyy.com/test.txt", который является текстовым файлом. Он содержит URL-адреса аудио .mp3.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 андроид: разрешение. я не знаю, где проблема ... приложение закрывает себя и говорит мне , что эта строка «mp.setDataSource(urls[randomNum]);
» неправильно
Здесь LogCat: http://textuploader.com/5iw5b Спасибо заранее !!
челобитная e post error log – Arjun
Две вещи: 1) генерировать 'randomNum' после создания массива' urls', чтобы вы могли инициализировать его, оно имеет значение между (от 0 до 'urls.size()'). Таким образом, вы не должны изменять значение 'max' в своей программе, когда вы добавляете и удаляете строки в вашем файле. 2) Попробуйте выполнить отладку через вашу программу, чтобы вы могли видеть, сколько записей находится в 'urls'. Если вы не знаете, как отлаживать, тогда вместо этого поставьте оператор печати. –
Из документации основные Исключения из 'void setDataSource (String path)': 'IllegalStateException',' IOException', 'IllegalArgumentException' и' SecurityException'. Вы должны предоставить нам журнал ошибок LogCat или дополнительную информацию для нас, чтобы помочь вам. Кроме того, когда вы получаете доступ к URL-адресу, какой ответ вам дает сервер? Бинарный, текстовый и т. Д.? Мим может разорвать ваше приложение, давая вам неожиданные результаты (например, ответ 300 HTTP) – Bonatti