저는 작은 동영상 (최대 10 초)을 녹화하고 재생할 수있는 작은 앱을 개발했습니다. 이 앱은 6Mbps의 속도로 비디오를 캡처합니다. 빠른 비디오 재생을 보장하기 위해 HLS (http 라이브 스트리밍)를 구현하려고합니다. 그러나 나는 앱이 항상 가장 낮은 비트 전송률로 스트림을 픽업하고 10 초 후에 만 최상의 사용 가능한 스트림 (네트워크 대역폭에 기반)으로 전환한다는 것을 알아 냈습니다.안드로이드의 HLS 적응 형 스트리밍은 10 초 후에 만 스트림을 변경합니까?
나는 안드로이드 미디어 플레이어, exoplayer 등과 같은 다른 미디어 플레이어를 테스트했지만 동작은 일관성이 있습니다. 비디오는 정확히 10 초 후에 만 스트림을 변경합니다. 이것은 안드로이드에서 hls의 기본 구현입니까? 또는 나는 무엇인가 놓치고 있냐? 내가 테스트에 사용 된 M3U8는 bipbopall.m3u8
에 나와있는 재생 목록의 내용을 보면, 세그먼트 지속 시간이 10 초입니다 것을 볼 수 있습니다 http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8
localUrl = "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8";
vidView.setVideoPath(localUrl);
Log.i("GenericRequest", "VideoUrl " + localUrl);
vidView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
vidView.start();
}
});