首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ERROR_CODE_IO_BAD_HTTP_STATUS exoplayer安卓系统

ERROR_CODE_IO_BAD_HTTP_STATUS exoplayer安卓系统
EN

Stack Overflow用户
提问于 2021-09-03 05:56:13
回答 1查看 175关注 0票数 0

我有一个形式http://x.x.x:80/movie/HqZqUt3I7B/QhGtliO2V4/xxxx.mp4?play_token=6nsYOBGUKj的网址,我想从那里获取视频并将其显示在exoplayer中。我通过将url放在VLC Network Stream中来确认url是完美工作的。但是相同的url在exoplayer中不起作用。这是我的exoplayer初始化代码。

代码语言:javascript
运行
复制
private fun initializePlayer() {
    if (url.isNotEmpty()){
        player = SimpleExoPlayer.Builder(this).build()
        binding.videoView.resizeMode = AspectRatioFrameLayout.RESIZE_MODE_FILL
        player.videoScalingMode = C.VIDEO_SCALING_MODE_SCALE_TO_FIT
        binding.videoView.player = player
        val mediaItem: MediaItem = MediaItem.fromUri(url)
        Log.d("testurl", url)
        player.setMediaItem(mediaItem)
        player.playWhenReady = playWhenReady
        player.seekTo(currentWindow, playbackPosition)
        player.prepare()
        player.addListener(this)
    } else {
        Toast.makeText(this, "Unable to play the video!", Toast.LENGTH_SHORT).show()
    }
}

我还实现了OnPlayerError listener来捕获错误。

代码语言:javascript
运行
复制
override fun onPlayerError(error: PlaybackException) {
    super.onPlayerError(error)
    if (error.message!=null) {
        Log.d("testmediaerror", "${error.errorCodeName} ${error.message}")
    } else {
        Log.d("testmediaerror", error.errorCodeName)
    }
}

因此,使用此代码执行OnPlayerError中的if块,并将错误显示为D/testmediaerror: ERROR_CODE_IO_BAD_HTTP_STATUS Source error。还有必要指出的是,我的服务器正在返回状态代码为302的视频。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-03 06:00:38

向服务器请求文件,然后执行HTTP 302重定向-这将在获取文件时生成实际的URL和HTTP 200。在Exoplayer中,也有一个配置allowCrossProtocolRedirects (它通常不允许从例如。HTTPS到HTTPS ...but,它应该支持公共重定向)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69040127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档