Tecnologia do Blogger.
RSS

[androidbrasil-dev] Re: Manter vídeo tocando (preservar buffer e etc) num fragmento quando rotacionar o device sem manipular o layout XML manualmente.

Idemax,
   Pra mim funcionou com o esquema de RetainInstance. Mas você só cria ele uma vez:

// Check to see if we have retained the worker fragment.
String tagWorkFrag = "workVideocast";
mWorkFragment = (WorkVideoFrag) fm.findFragmentByTag(tagWorkFrag);

// If not retained (or first time running), we need to create it.
if (mWorkFragment == null) {
   mWorkFragment = new WorkVideoFrag();
   Bundle params = new Bundle();
   params.putParcelable(VideocastTO.PARAM, videocastTO);
   mWorkFragment.setArguments(params);
   .
   fm.beginTransaction().add(mWorkFragment, tagWorkFrag).commit();
}

Em terça-feira, 1 de abril de 2014 09h32min02s UTC-3, Idemax Green escreveu:
Bom dia pessoal,

Há alguns dias estou trabalhando num workaround do problema citado no título, basicamente tenho dois XMLs com layouts diferentes para PORT e LAND quais possuem um fragment comum, que por sua vez tem um VideoView (ou Media Player inserido via código, tanto faz). No cenário ideal eu não defino o configChanges no Manifest para ouvir as mudanças de orientação e não dou override no onConfigurationChanged na activity pai para que o OS cuide da troca de layout. Porém quando isso acontece e o vídeo está no meio ele reinicia, sei que isso é causado porque o OS reconstrói a activity, layouts, etc...

Já estou definindo o retain instance do fragment para TRUE porém ele só mantem a instância, e por se tratar de um primo do activity, cai no mesmo ciclo de reconstrução devido a sofrer o detached e attached. Também já testei manter instância do VideoPlayer e re-adicionar num novo view, porém como os componentes criados dinamicamente precisam de um contexto, quando a rotação reinicia a Activity trata-se de um novo contexto.

Achei esses links que dão algumas sugestões, porém a mais elegante julguei ser manipular a adição e remoção de fragments manualmente.


Alguém já passou por isso? Já resolveu isso de outra forma?

Obrigado, abraços.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário