ProgressBar op de top van FrameLayout

Ik heb een vreemde situatie. Ik gebruik NexPlayer om streaming video weer te geven in de openGL-modus. Bovenop het weergavegebied voor de streamingvideo (een framelayout), geef ik een ProgressBar weer in de onbepaalde modus wanneer de videoplayer buffert, vergelijkbaar met wat de YouTube-app doet.

Dit werkt prima tot het moment dat de speler stopt met bufferen en ik probeer de voortgangsbalk van het scherm te verwijderen. De voortgangsbalk stopt met animeren, maar blijft op het scherm staan, alsof het een watermerk in de video is. De manier waarop ik het probeer te verwijderen, is door de zichtbaarheid van de voortgangsbalk te veranderen; Ik heb zowel View.INVISIBLE als View.GONE geprobeerd, maar geen van beide werkt. Ik heb ook geprobeerd de voortgangsbalk in een andere lay-out in te pakken en de zichtbaarheid van die container te wijzigen, maar het mocht niet baten.

Ik merkte dat wanneer ik het apparaat draai, de voortgangsbalk verdwijnt.

Hieronder vindt u de xml-lay-out voor de speleractiviteit. De surfaceview daarin wordt alleen gebruikt als het apparaat OpenGL 2.0 niet ondersteunt.

Heeft iemand enig idee hoe je van deze ProgressBar af kunt komen?

Bij voorbaat dank!

<?xml version="1.0" encoding="utf-8"?>










    

        

        
    

    




    




EDIT: de code die de zichtbaarheid van de weergave verandert:

@Override
public void onBuffering(int progress_in_percent) {
    Log.d(TAG, "Buffering " + progress_in_percent + " %");
}

@Override
public void onBufferingBegin() {
    Log.d(TAG, "Buffering begin");
     loadingContainer.setVisibility(View.VISIBLE);
}

@Override
public void onBufferingEnd() {
    Log.d(TAG, "Buffering end");
    loadingContainer.setVisibility(View.GONE);
}

Deze methoden worden aangeroepen vanuit het NexPlayer-framework. Ik weet zeker dat ze worden gebeld omdat ik de uitvoer in de logs krijg.

1
Ik heb de code toegevoegd. Bedankt voor het kijken!
toegevoegd de auteur Mopper, de bron
Zou je de code kunnen plaatsen die je gebruikt om te laten zien en de voortgangsbalk proberen te verbergen?
toegevoegd de auteur Craigy, de bron

1 antwoord

Oké, ik heb het uitgezocht. De callback die ik kreeg van het NexPlayer-framework stond niet op de UI-thread. Vreemd genoeg veroorzaakte dit geen stacktraces in het log, dus merkte ik dit pas nadat ik mijn debugger had bijgevoegd en een breekpunt had toegevoegd dat bij een uitzondering ophield.

Ik heb dit opgelost door runnables te maken die precies hetzelfde doen als de bovenstaande code en deze in mijn handler plaatsen.

(Het klopt nog steeds waarom de ProgressBar in de eerste plaats opdook, omdat het ook op de verkeerde manier zichtbaar werd gemaakt: /)

2
toegevoegd