Exoplayer в recyclerView выдает исключение памяти - PullRequest
0 голосов
/ 11 октября 2019

RecyclerView с каждым элементом как Exoplayer выбрасывает исключение из памяти даже после освобождения проигрывателя в методе onViewRecycled () адаптера. Что я могу сделать, чтобы решить эту проблему?

Я прошел другие посты об этой проблеме, из-за этого я попробовал эту ссылку , но это также не работает.

И я уже увеличил размер кучи в манифесте .

фрагмент кода из адаптера:

     override fun onBindViewHolder(holder: MemoryHomeHolder, position:Int) 
     {
        val memory = memoryList[position]
        holder.bind(memory)
        holder.itemMemoryListBinding.playerView?.useController = true
        holder.itemMemoryListBinding.playerView?.showController()

        val path: memory.path

        val player = ExoPlayerFactory.newSimpleInstance(
            context,
            DefaultTrackSelector(),
            DefaultLoadControl()
        )
        val dataSourceFactory = DefaultDataSourceFactory(
            context,
            Util.getUserAgent(context, AppConstants.OFH)
        )
        val source = ProgressiveMediaSource.Factory(dataSourceFactory) .createMediaSource(Uri.parse(path))
        holder.itemMemoryListBinding.playerView?.player = player

        holder.itemMemoryListBinding.playerView?.controllerHideOnTouch = false
        holder.itemMemoryListBinding.playerView?.controllerShowTimeoutMs = -1
        holder.itemMemoryListBinding.playerView?.resizeMode =
        AspectRatioFrameLayout.RESIZE_MODE_FILL
        holder.itemMemoryListBinding.playerView?.exo_progress?.visibility 
        = View.GONE
        (holder.itemMemoryListBinding.playerView?.player as 
         SimpleExoPlayer?)?.prepare(source)
        (holder.itemMemoryListBinding.playerView?.player as 
        SimpleExoPlayer?)?.repeatMode = Player.REPEAT_MODE_ALL

        activePlayerHolders.add(holder)
        Log.d(TAG, "holder init for position = $position")
   }

   override fun onViewRecycled(holder: MemoryHomeHolder) {
        super.onViewRecycled(holder)
        holder.itemMemoryListBinding.playerView?.player?.release()
   }

Я хочу, чтобы в RecyclerView был элемент Exoplayer в качестве элемента в каждомдержатель и он не должен выбрасывать из памяти исключение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...