Вы пытаетесь воспроизвести все видео Vimeo или только видео, которые вы загрузили Vimeo?
Я думаю, что проблема в том, что файл mp4, который вы извлекаете, на самом деле недействителен или у вас его нет разрешения на потоковую передачу по вашему токену oauth (если у вас его нет).
Вы можете проверить библиотеку vimeo-network README здесь .
The basic requirements for native playback are:
User must be logged in.
User must be the owner of the video.
User must be PRO or higher (or the app must have the "can access owner's video files" capability).
Token must have the video_files scope.
User must be the owner of the API app making the request.
Если вы удовлетворяете всем этим требованиям, вы можете сделать запрос API к Vimeo, и он вернет вам действительный файл MP4, который вы можете передать как videoLink
.
// Obtain a video you own my making a GET request
Video video = ...;
Play play = video.getPlay();
// This will be a list of "progressive" video files (basically just MP4s of different resolutions that you can pass to ExoPlayer
ArrayList<VideoFile> progressiveFiles = play.getProgressiveVideoFiles();
String linkToMp4File = progressiveFiles.get(0).getLink();
val videoSource = ProgressiveMediaSource.Factory(dataSourceFactory)
.createMediaSource(Uri.parse(linkToMp4File))
Если вы не Не тот, кто загрузил видео, я думаю, что есть способ получить действительную ссылку на видео, но я никогда не делал это лично. Поскольку всем пользователям разрешено вставлять любое видео (если видео опубликовано c и встраиваемо), вы можете получить ссылку для вставки из API здесь и затем извлечь MP4 ссылка на файл из кода встраивания может быть? Просто идея.