いくつかのローカル インターネット ラジオをストリーミングして、Android アプリケーションを開発する予定です。そのために、私は Android のMediaPlayer
オブジェクトとsetDataSource
メソッドを使用しています。しかし、期待どおりにストリーミングされないため、失敗しました。ただし、setDataSource
実際のmp3リソースとして設定すると、機能します。
uses-permission
参考までに、次のように AndroidManifest.xml ファイルにも設定しました。
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
このアプリケーションMainActivity.javaで使用したコードは次のとおりです。
package com.example.saralfm;
import java.io.IOException;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final MediaPlayer mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
//Its working
//mp.setDataSource("http://download.tamiltunes.com/songs/__P_T_By_Movies/Saguni%20%282012%29/Manasellam%20Mazhaiye%20-%20TamilWire.com.mp3");
//Its not working
mp.setDataSource("http://www.onlineradios.in/tamil-radio-from-india/#aahaa-91_9-fm-chennai/");
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer arg0) {
// TODO Auto-generated method stub
mp.start();
}});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
私はAndroid OSにかなり慣れていません。私を助けてください。