J'utilise actuellement OnpreviewCallback afin que je puisse capturer des cadres de la caméra lors de l'aperçu et les diffuser via http. p>
Cela fonctionne, mais je publie ensuite une commande pour commencer à enregistrer et, semble-t-il, je n'ai plus de rappel d'aperçu. P>
Ainsi, comment puis-je garder le rappel d'aperçu afin que je puisse envoyer les images de la surface à mon serveur et enregistrer la vidéo sur l'appareil? P>
3 Réponses :
Je n'ai pas travaillé pendant assez longtemps avec la caméra Android. Cependant, comme je me souviens p>
1) OnpreviewCallback n'est pas appelé pendant que vous enregistrez p>
Il est mentionné dans quelques questions: P>
caméra onpreviewFrame non appelée Comment afficher l'aperçu de la caméra filtrée en temps réel pendant l'enregistrement vidéos? p>
2) J'ai vu qu'il était manipulé dans Siphdroid et couple d'autres clients de SIP Android à la suite (c'était il y a 1 à 2 ans, cette méthode pourrait donc être extérieure): P>
3) Vous pouvez utiliser OnpreviewFrame + Démarrer Audiorecorder et le coder vous-même (à l'aide de FFMPEG ou quelque chose du genre) vers le fichier MP4. De cette façon, vous n'avez pas besoin de démarrer l'enregistrement Mediarecorder. p>
1. Toutes ces réponses ne fonctionneront pas Stackoverflow.com/questions/52314822/... 2. Je ne pense pas que cela aidera à résoudre ce problème (pour enregistrer la vidéo locale + l'audio et obtenir des cadres bruts en même temps ) 3. - Toutes les libs externes fonctionnent laids, n'utilisent jamais FFMPEG pour l'enregistrement vidéo sur Android
Une fois que j'ai eu la caméra et le médiarecorder pour démarrer et arrêter l'enregistrement sans crash (n'était pas facile), j'ai toujours eu un problème comme celui que vous avez décrit, où le rappel d'aperçu cesserait d'être appelé. P>
Le correctif que j'ai enfin trouvé ajoutez un appel à SetPreviewCallback après Mediarecorder.start (), et une autre après Mediarecorder.stop (). Je ne sais pas si cela est correct, mais cela a fonctionné sur le razr m que je teste. P>
ne fonctionne pas Stackoverflow.com/questions/52314822/...
@ User924 Assurez-vous d'obtenir des cadres de prévisualisation pendant l'enregistrement fonctionnent, car l'aperçu des cadres était le seul moyen de donner une vue en direct sur l'écran de l'appareil de ce qui est enregistré. Cela dit, il y a beaucoup d'endroits où cela peut se tromper. De nombreux téléphones avaient aussi des bizarreries et seraient même s'écraser si l'API n'était pas utilisée. Et l'API a peut-être changé dans les nouvelles versions Android (cette réponse a 5 ans). Je vais jeter un oeil à votre lien et aiderai si je peux là k ..
Vous pouvez appeler ces méthodes après votre enregistreur multimédia.Start () étant appelée comme suit: Les raisons: P> J'ai jamais été le même problème que vous êtes dans ma demande et je l'ai résolu. J'espère que cela peut résoudre vos problèmes! P> p>
Non, ça ne marche pas Stackoverflow.com/questions/52314822/...
Et si j'utilise de surfacetexture? Quoi qu'il en soit, il ne s'agit pas du tout à propos de ViewView ou TextureView du tout. Nous parlons de rappel surpreviewFrame et non sur la visualisation
Donc, votre troisième ligne n'est pas importante, bien que les deux premières lignes caméra.reconnect (); caméra.setpreviewcallback (); code> ne vous aidera pas à résoudre ce problème
J'ai essayé des réponses mais ça n'a pas fonctionné Stackoverflow.com/Questtions/52314822/...
Avez-vous trouvé une solution?
Toute solution pour cela?