Android Streaming Internet Radio Service

时间:2016-02-02 10:04:59

标签: java android android-studio android-service audio-streaming

我正在编写一个Android应用程序来从ip传输无线电。我做了一个测试应用程序,其中流服务在MainActivity中,并且它可以工作。 但是,我想在用户转到另一个应用程序时继续流式传输音频。

在我的MainActivity中,我有一个播放/停止按钮,点击后,服务将开始或停止。我的MainActivity处理按钮更改。

开始服务:

Intent intent = new Intent(MainActivity.this, StreamRadio.class);
intent.putExtra("url", "http:/xx.xx.xxx.xxx:xxxx/");
startService(intent);

停止服务:

stopService(new Intent(MainActivity.this, StreamRadio.class));

在StreamRadio.java中,我想要一个从给定网址播放音频的服务。这是我目前的代码,但是它没有用。

public class StreamRadio extends Service implements MediaPlayer.OnPreparedListener {

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        MediaPlayer mediaPlayer = new MediaPlayer();
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        try {
            mediaPlayer.setDataSource(intent.getExtras().getString("url"));
        } catch (IOException e) {
            e.printStackTrace();
        }

        mediaPlayer.setOnPreparedListener(this);
        mediaPlayer.prepareAsync();

        mediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);

        return START_STICKY;
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onPrepared(MediaPlayer mp) {
        mp.start();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        stopForeground(true);
    }
}

正确调用服务,我收到错误

  

E / MediaPlayer:错误(1,-1)

在物理设备上进行测试时,我在模拟器上收到这两个错误:

  

E / MediaPlayer:错误(1,-2147483648)      E / MediaPlayer:错误(1,-2147483648)

问题:如何制作从ip流式传输无线电的服务?

提前致谢!

0 个答案:

没有答案