Android MediaPlayer RTSP未知错误

时间:2014-07-21 07:49:03

标签: android video-streaming android-mediaplayer rtsp

我们正在开发一款应用,可通过RTSP协议从IP Camera发送实时视频。

该流仅适用于我们的一个设备(LG G2 - KitKat 4.4.2)。但是,当我们尝试在任何其他设备(Samsung S3,S4,Note 3,Nexus 5)上运行它时,它会因此错误而失败:E/MediaPlayer﹕ Error (1,-2147483648)

对互联网的研究告诉我们,这意味着实际的错误是未知的,这有点令人沮丧。任何人都可以帮助我们。以下是一些初始化流的代码:

首先,我们的surfaceCreated方法:

public void surfaceCreated(SurfaceHolder holder) {

    dialog = ProgressDialog.show(this, "Please wait.." , "Connecting.." , true);
    mediaPlayer = new MediaPlayer();
    mediaPlayer.setOnBufferingUpdateListener(this);
    mediaPlayer.setOnErrorListener(this);

    new PrepareStreamTask().execute();

}

然后使用AsyncTask来准备流:

private class PrepareStreamTask extends AsyncTask<URL, Integer, Long> implements MediaPlayer.OnPreparedListener{

    @Override
    protected Long doInBackground(URL... params) {

        try {

            mediaPlayer.setDisplay(vidHolder);
            mediaPlayer.setDataSource(currentStream.getUrl());
            mediaPlayer.setOnPreparedListener(this);
            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            mediaPlayer.prepareAsync();

        } catch (Exception e){
            e.printStackTrace();
        }

        return null;
    }

    @Override
    protected void onProgressUpdate(Integer... progress){
        setProgressPercent(progress[0]);
    }

    @Override
    protected void onPostExecute(Long result){
    }

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

您可能已经猜到prepareAsync()方法发生了错误。我们也尝试使用prepare()

流本身设置如下:

视频:h264(基线),yuv420p,320x240,90k tbr,90k tbn,180k tbc

音频:pcm_mulaw,8000 Hz,单声道,s16,64 kb / s

任何人都可以对此有所了解。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我们决定使用Vitamio图书馆。现在,所有设备都能正常运行。