我正在构建一个流媒体应用程序,依靠MediaPlayer播放通过RTP / RTSP流式传输的视频(使用VLC Media Player作为服务器) .

这是有问题的活动的代码:

public class MediaPlayerActivity extends Activity implements SurfaceHolder.Callback, MediaPlayer.OnPreparedListener  {

private MediaPlayer mediaPlayer;
private SurfaceHolder vidHolder;
private SurfaceView surfaceVideo;
private String address;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_media_player);
    Intent intent=getIntent();
    Bundle b=intent.getExtras();
    address=b.getString("EXTRA_ADDRESS");
    surfaceVideo =(SurfaceView)findViewById(R.id.surfaceVideo);
    vidHolder = surfaceVideo.getHolder();
    vidHolder.addCallback(this);
}

@Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
}

@Override
public void surfaceCreated(SurfaceHolder arg0) {
    try {
        mediaPlayer = new MediaPlayer();
        mediaPlayer.setDisplay(vidHolder);
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mediaPlayer.setDataSource(getApplicationContext(), Uri.parse(address));
        mediaPlayer.setOnPreparedListener(this);
        mediaPlayer.prepareAsync();
    }
    catch(Exception e){
        e.printStackTrace();
    }
}

@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
    mediaPlayer.release();
}

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

如您所见,活动从其他活动获取流的URL . 当我启动应用程序通过 RTP 接收流时,我在logcat上获得以下输出:

09-28 17:50:44.000    1223-1223/com.example.cosmickone.mystreamingapp E/MediaPlayer-JNI﹕ android_media_MediaPlayer_setDataSourceAndHeaders : start showDialog  drm_status = -1
09-28 17:50:44.000    1223-1223/com.example.cosmickone.mystreamingapp E/MediaPlayer-JNI﹕ android_media_MediaPlayer_setDataSourceAndHeaders : end showDialog
09-28 17:50:44.270    1223-1240/com.example.cosmickone.mystreamingapp E/MediaPlayer﹕ error (1, -1003)
09-28 17:50:44.290    1223-1223/com.example.cosmickone.mystreamingapp E/MediaPlayer﹕ Error (1,-1003)

当我想打开 RTSP 流时,这是logcat上显示的错误:

09-28 17:49:25.370    1223-1223/com.example.cosmickone.mystreamingapp E/MediaPlayer-JNI﹕ android_media_MediaPlayer_setDataSourceAndHeaders : start showDialog  drm_status = -1
09-28 17:49:25.370    1223-1223/com.example.cosmickone.mystreamingapp E/MediaPlayer-JNI﹕ android_media_MediaPlayer_setDataSourceAndHeaders : end showDialog
09-28 17:49:25.370    1223-1239/com.example.cosmickone.mystreamingapp E/MediaPlayer﹕ error (1, -2147483648)
09-28 17:49:25.410    1223-1223/com.example.cosmickone.mystreamingapp E/MediaPlayer﹕ Error (1,-2147483648)

我已经成功地在Windows和Android上接收了VLC客户端上的流,我正在尝试使用不同格式的各种文件,因此我会放弃这是因为媒体编解码器或错误的服务器设置 . 我在我的本地网络上测试它,所以端口/防火墙不应该有问题,我错了吗?

有人能告诉我我做错了什么吗?

编辑:我已经在我的清单上获得了INTERNET权限 .