У меня возникла странная проблема с моим Android-приложением. У меня есть локальный DVR (потоковый сервер), и я сделал приложение, чтобы получить прямой эфир из него с помощью библиотеки Vitamio.Ошибка Android Vitamio Mediaplayer (1, -1) при использовании серверов Public IP
public class LiveStreamingActivity extends Activity
{
private static VideoView mVideoView;
private ProgressDialog prodlg;
private static String path;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
if (!LibsChecker.checkVitamioLibs(this))
return;
setContentView(R.layout.activity_video_stream);
path="rtsp://user:[email protected]:port/cam/realmonitor?channel=1&subtype=0";
prodlg=new ProgressDialog(this);
prodlg.setIcon(R.mipmap.ic_launcher);
prodlg.setMessage("Ju lutem prisni...");
prodlg.show();
mVideoView = (VideoView) findViewById(R.id.vitamio_videoView);
mVideoView.setVideoPath(path);
mVideoView.setVideoQuality(MediaPlayer.VIDEOQUALITY_HIGH);
mVideoView.setBufferSize(4096);
mVideoView.requestFocus();
mVideoView.start();
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
{
@Override
public void onPrepared(MediaPlayer mediaPlayer)
{
prodlg.dismiss();
mediaPlayer.setPlaybackSpeed(1.0f);
}
});
mVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener()
{
@Override
public boolean onError(MediaPlayer mp, int what, int extra)
{
Log.d("ERROR What", String.valueOf(what));
Log.d("ERROR Extra", String.valueOf(extra));
return false;
}
});
mVideoView.setOnInfoListener(new MediaPlayer.OnInfoListener()
{
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra)
{
Log.d("INFO What", String.valueOf(what));
Log.d("INFO Extra", String.valueOf(extra));
return false;
}
});
}
}
У меня есть все необходимые разрешения в манифесте.
Теперь, когда я пытаюсь использовать приведенный выше код с использованием IP-адресов серверов, он отлично работает. Когда я использую общедоступный IP-адрес серверов, он терпит неудачу, давая ошибку (1, -1), говоря «Извините, это видео не может играть ». Также можно получить доступ к серверу удаленно, попробовать другие приложения для потоковой передачи IP-камеры, а также VLC-плеер, и он работает нормально. За исключением VLC Из того, что я видел, только мое приложение не может открыть его удаленно. Почему это?
Я попытался открыть другие потоки из Интернета, и они отлично работают.
LogCat также показывает:
[RTSP @ 0x6125e020] метод PAUSE не удалось: 455 Метод не действует в этом государственный E/Vitamio [4.2.1] [Player]: av_find_stream_info: Операция не разрешается: -1
Я не могу понять, если проблема с приложением или сети ... Если кто-то может помочь, было бы весьма признателен!