首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始化OMX.MTK.VIDEO.DECODER.AVC失败,错误0 0xfffffff4 4

初始化OMX.MTK.VIDEO.DECODER.AVC失败,错误0 0xfffffff4 4
EN

Stack Overflow用户
提问于 2022-02-28 20:31:46
回答 1查看 899关注 0票数 1

我正试图将视频从火柴库加载到ExoPlayer的回收器视图中。但问题是,视频有时不播放,如果我按下播放按钮,它会给我下面的错误。

代码语言:javascript
复制
Caused by: com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.MTK.VIDEO.DECODER.AVC......

在将播放机设置为player视图之前,我尝试在/之前调用release()方法,但没有发生任何更改。

我已经浪费了超过5天的时间来解决这个问题,我找不到任何解决办法。

有什么ExoPlayer的替代方法可以将视频从火场加载到回收者的视野?

代码的一部分来自onBindViewHolder在我的回收Adpater:

代码语言:javascript
复制
@Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {

            ExoPlayer player = new ExoPlayer.Builder(context).build();
            MediaItem mediaItem = MediaItem.fromUri(postList.get(position).getImgUrl());
            player.setMediaItem(mediaItem);
            player.prepare();
            videoViewHolder.andExoPlayerView.setPlayer(player);
    }

和我正在初始化视图内部的playerView,如下所示:

代码语言:javascript
复制
public VideoViewHolder(@NonNull View itemView) {
        super(itemView);

        andExoPlayerView = itemView.findViewById(R.id.andExoPlayerView);
        ........
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-27 19:27:31

当回收器视图被回收时,我不得不释放播放器。

我从这个问题中找到答案,here

代码语言:javascript
复制
@Override
public void onViewRecycled(@NonNull ViewHolder holder) {
    int position = holder.getAdapterPosition();
    if (mDataset.get(position) != null) {
        mDataset.get(position).getPlayer().release();
    }
    super.onViewRecycled(holder);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71300753

复制
相关文章

相似问题

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