Então Victor, mas os XMLs dos layouts em port e land são diferentes? Você está tratando o onConfigurationChanged na activity principal?
Porque se for o mesmo XML (o arquivo em sí) o problema não vai aparecer, e se vc estiver sobrescrevendo o onConfigurationChanged (com o atributo android:configChanges="orientation|screenSize" no Manifest) também não vai.
2014-04-03 13:28 GMT-04:00 Victor Pinto <ovictorpinto@gmail.com>:
Marcelo,--O que eu fiz foi com dois fragmentos, um que só tem o SurfaceView (chamo de ViewFragment) e o outro que tem a propriedade setRetainInstance(true); e o atributo MediaPlayer (chamo de WorkFragment). Assim o vídeo fica sempre tocando no WorkFragment e nunca é destruido, e o View só exibe o vídeo podendo ser destruido e criado novamente e vai referenciar o mesmo WorkFragment que existia antes.
Em terça-feira, 1 de abril de 2014 18h55min20s UTC-3, Idemax Green escreveu:Oi Victor,Então cara, eu estou fazendo o mesmo. E mesmo com retain instance setado para TRUE o vídeo não continua tocando direto (estilo YouTube) após a rotação. Estou te enviando o projeto para olhar o cenário modelo. Tem a MainActivity que tem um fragmento MyFragment que por sua vez roda um vídeo em loop (o vídeo está na raiz do projeto, só copiar para a raiz do DCIM do device).Obrigado pela resposta, abraços.
2014-04-01 15:57 GMT-04:00 Victor Pinto <ovicto...@gmail.com>: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 a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/DiXsnTmFL5k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/DiXsnTmFL5k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
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.






0 comentários:
Postar um comentário