简体   繁体   English

在Android中获得音频流错误(使用URL)

[英]getting Error for Audio Streaming in Android (using URL)

Want to do a audio streaming for a URL. 想要对URL进行音频流传输。 The same URL is playing a live radio while running on the mobile browser. 在移动浏览器上运行时,相同的URL正在播放直播广播。 But while using MediaPlayer for android app there is no output. 但是,在将MediaPlayer用于Android应用程序时,没有输出。 It gives the following error. 它给出以下错误。

    09-07 05:16:37.539: E/MediaPlayer(1265): error (1, -2147483648)
09-07 05:16:37.539: W/System.err(1265): java.io.IOException: Prepare failed.: status=0x1

My code sample is : 我的代码示例是:

try {
        Log.i("Audio Streaming", "start-->");
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mediaPlayer.setDataSource(URL_OF_AUDIO);
        mediaPlayer.prepare();
        mediaPlayer.start();
    } catch (IllegalArgumentException 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();
    }

make sure that URL which is passing is valid and check the androidmanifest whether it is having the access permission. 确保传递的网址有效,并检查androidmanifest是否具有访问权限。

use onprepared listener to start the video to avoid some unwanted exceptions. 使用准备好的侦听器开始播放视频,以避免出现一些不必要的异常。

try this one it works fine........ 试试这个效果很好........

public class test extends Activity implements OnErrorListener, OnPreparedListener {

private MediaPlayer player;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    player = new MediaPlayer();
    player.setAudioStreamType(AudioManager.STREAM_MUSIC);
    try {
        player.setDataSource("http://www.hubharp.com/web_sound/BachGavotte.mp3");
        player.setOnErrorListener(this);
        player.setOnPreparedListener(this);
        player.prepareAsync();
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }       
}
@Override
public void onDestroy() {
    super.onDestroy();
    player.release();
    player = null;
}
@Override
public void onPrepared(MediaPlayer play) {
    play.start();
}
@Override
public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
    return false;
}
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM