Я пытаюсь воспроизвести видео в прямом эфире в своем приложении с помощью SurfaceView
, когда я пытаюсь использовать его с Vitamio
, он играет хорошо, но поскольку это HTTP-ссылка, я пытался избавиться от любой сторонней библиотеки и использовал родные классы. Я пробовал VideoView
, как всегда, тогда я попробовал базовую реализацию SurfaceView после сбоя. Я попробовал текстуру videw следующим образом:
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) {
Surface surface = new Surface(surfaceTexture);
try {
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(getApplicationContext(), Uri.parse(link));
mMediaPlayer.setSurface(surface);
mMediaPlayer.setLooping(true);
mMediaPlayer.prepareAsync();
// Play video when the media source is ready for playback.
mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
mMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.d(TAG, "Error occured");
return false;
}
});
} catch (IllegalArgumentException e) {
Log.d(TAG, e.getMessage());
} catch (SecurityException e) {
Log.d(TAG, e.getMessage());
} catch (IllegalStateException e) {
Log.d(TAG, e.getMessage());
} catch (IOException e) {
Log.d(TAG, e.getMessage());
}
}
но не удача каждый раз, когда вызывается MediaPlayer OnError и в logcat я получаю следующее:
06-28 16:00:56.612 144-8044/? E/GenericSource﹕ Failed to prefill data cache!
06-28 16:00:56.614 7997-8016/? E/MediaPlayer﹕ error (1, -2147483648)
06-28 16:00:56.614 7997-7997/? E/MediaPlayer﹕ Error (1,-2147483648)
но дело в том, что с URL-адресом нет проблем, этот URL-адрес отлично работает на витамио и на всех других играх, на которых я могу протестировать, пожалуйста, помогите!