ExoPlayer в Android не загружается с помощью M3U8 + QueryParameter (auth)Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 ExoPlayer в Android не загружается с помощью M3U8 + QueryParameter (auth)

Сообщение Anonymous »

Я использую com.google.android.exoplayer2 ( exoPlayer Version = 'r2.5.2'), и мне приходилось загружать/транслировать видео, например

Код: Выделить всё

> https://something.com/test/something.m3u8
Он работал хорошо.
Но требования изменились, и в соответствии с этим изменился «формат URL-адреса» видео, добавив в запрос некоторые части, связанные с аутентификацией. параметр URL.

Код: Выделить всё

> https://something.com/test/something.m3u8?media-auth=exp=1623782763942~acl=/test/7dede44-djnjcndncj/*~hmac=3232434242
теперь плеер не загружает это видео.
Журнал ошибок показывает эту ошибку.

2021-05-06 08:42:12.395 7020-7220/? E/ExoPlayerImplInternal: ошибка источника.
com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: код ответа: 403
в com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource. java:211)
в com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:141)
at com.google.android.exoplayer2.upstream.DataSourceInputStream.checkOpened(DataSourceInputStream.java:102)
at com.google.android.exoplayer2.upstream.DataSourceInputStream.open(DataSourceInputStream.java:65)
at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:125)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
в java.lang.Thread.run(Thread.java:764)
06.05.2021 08:42: 12.396 7020-7020/? E/VideoPlayerView: onError

Код: Выделить всё

HlsSource sourceHLS = new HlsSource(videoQuiz.video.id(),
videoQuiz.video.title(),
VideoHelper.prepareHlsVideoUriWithQuery("video URL"),
HlsSource.TIME_UNSET,
0,
HlsSource.TIME_UNSET,
0L, null);
videoPlayerView.start(sourceHLS,
toUri(thumbnailUrl),
autoPlay,
getCurrentSegmentStartPosition());
showQuestionAt(currentQuestionPosition);
Ниже я упомянул, как я изменил метод prepareHlsVideoUriWithQuery.

Код: Выделить всё

public static Uri prepareHlsVideoUriWithQuery(String thisUrl) {
URL url = null;
try {
url = new URL("video URL");
} catch (MalformedURLException e) {
e.printStackTrace();
}
Uri.Builder builder = new Uri.Builder()
.scheme(url.getProtocol())
.encodedAuthority(url.getAuthority())
.encodedPath(url.getPath().substring(1))
.encodedQuery("video-auth=exp=24244~test=/test/232323-3232323/*~test=24242c0232n3223");

return builder.build();
}
Итак, какое место мне нужно изменить, чтобы загрузить m3u8+authstring в exo player?
и любые мысли об установке mimetype опишите здесь Android HLS видео тип пантомимы

Подробнее здесь: https://stackoverflow.com/questions/674 ... ameterauth
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»