2016-07-12 3 views
-2

У меня есть 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 Спасибо заранее !!

+0

челобитная e post error log – Arjun

+0

Две вещи: 1) генерировать 'randomNum' после создания массива' urls', чтобы вы могли инициализировать его, оно имеет значение между (от 0 до 'urls.size()'). Таким образом, вы не должны изменять значение 'max' в своей программе, когда вы добавляете и удаляете строки в вашем файле. 2) Попробуйте выполнить отладку через вашу программу, чтобы вы могли видеть, сколько записей находится в 'urls'. Если вы не знаете, как отлаживать, тогда вместо этого поставьте оператор печати. –

+0

Из документации основные Исключения из 'void setDataSource (String path)': 'IllegalStateException',' IOException', 'IllegalArgumentException' и' SecurityException'. Вы должны предоставить нам журнал ошибок LogCat или дополнительную информацию для нас, чтобы помочь вам. Кроме того, когда вы получаете доступ к URL-адресу, какой ответ вам дает сервер? Бинарный, текстовый и т. Д.? Мим может разорвать ваше приложение, давая вам неожиданные результаты (например, ответ 300 HTTP) – Bonatti

ответ

0

Ваш массив NULL

поместить этот код после super.onCreate

urls=new String[max]

Update 3:

попробовать это:

ArrayList<String> urls=new ArrayList<String>(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    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.add(str); 
     } 
     in.close(); 
     } catch (MalformedURLException e) { 
     } catch (IOException e) { 
    } 

Log.i("test","url count="+urls.size()); 


    boolean isPLAYING = false; 

    if (!isPLAYING) { 
     isPLAYING = true; 
     MediaPlayer mp = new MediaPlayer(); 
     try { 
      int randomPos = new Random().nextInt(urls.size()); 
      mp.setDataSource(urls.get(randomPos)); 
      mp.prepare(); 
      mp.start(); 
     } catch (IOException e) { 

     } 
    } else { 
     isPLAYING = false; 

    } 

} 
+0

Я получаю ту же ошибку – killertoge

+0

проверить мое обновление. –

+0

Благодарим вас за помощь, но она не работает. .. – killertoge

Смежные вопросы