screen_record_plus_puftpalkim 1.0.0
screen_record_plus_puftpalkim: ^1.0.0 copied to clipboard
Fork of screen_record_plus for PuftPalkim: adds app-audio capture on iOS (the upstream plugin only records video and silently drops all audio), and drops the unused FFmpeg region-cropping feature to a [...]
screen_record_plus_puftpalkim #
Fork privado de screen_record_plus (v1.1.0),
feito para o app PuftPalkim, na mesma linha do fork arkit_plugin_puftpalkim já usado no
projeto (Custom Pub Dependency do FlutterFlow).
Por que este fork existe #
O plugin original, no iOS, usa a API de sample buffers do ReplayKit (RPScreenRecorder.startCapture)
mas só processa buffers do tipo .video — qualquer áudio entregue pelo ReplayKit é descartado
silenciosamente, em qualquer app que use o pacote, para qualquer gravação. Não é um problema de
permissão nem de configuração: é assim que o ios/Classes/ScreenRecordPlusPlugin.swift original
está escrito. O resultado prático: todo vídeo gravado com screen_record_plus original sai mudo.
O que este fork muda #
- Áudio do app (
.audioApp): adicionado um segundoAVAssetWriterInput(áudio AAC) aoAVAssetWriter, e o handler de captura agora também tratasampleBufferType == .audioApp, anexando esses buffers ao writer de áudio..audioAppé o áudio que o próprio app está tocando (no caso do PuftPalkim, a narração/vídeo da experiência de Realidade Aumentada) — não o microfone. Não pede nem precisa de permissão de microfone para isso (RPScreenRecorderentrega.audioAppindependentemente deisMicrophoneEnabled). - Removido o recorte de vídeo via FFmpeg (
recordingRect+flutter_ffmpeg_kit_full): oARCameraViewdo PuftPalkim sempre grava a tela inteira (nunca passarecordingRect), então esse caminho de código nunca era exercitado — mas a dependência do FFmpeg (~100MB) era compilada no app do mesmo jeito. Removendo essa funcionalidade não usada, o app ganha o áudio sem ficar maior — na verdade fica menor do que estava com o pacote original.
A API pública em Dart (ScreenRecorderController, .start(), .stop(), .exporter.exportVideo(...))
é idêntica à do pacote original — só o parâmetro recordingRect deixou de ter efeito (a
gravação é sempre da tela inteira). Quem já usa screen_record_plus normalmente só precisa trocar
o nome do pacote no pubspec.yaml/import.
Uso #
dependencies:
screen_record_plus_puftpalkim: ^1.0.0
import 'package:screen_record_plus_puftpalkim/screen_record_plus_puftpalkim.dart';
final controller = ScreenRecorderController();
await controller.start();
// ...
await controller.stop();
final file = await controller.exporter.exportVideo(
multiCache: true,
cacheFolder: 'my_recordings',
);
iOS #
Igual ao pacote original — adicione ao Info.plist (mesmo que este fork não exija mais
microfone para o áudio do app, o RPScreenRecorder ainda pede esta chave por causa do fluxo de
permissão de gravação de tela do sistema):
<key>NSMicrophoneUsageDescription</key>
<string>Precisamos do microfone para gravar a tela com áudio.</string>
Android #
Sem mudanças nesta versão — o lado Android continua exatamente igual ao pacote original (não foi tocado neste fork; o PuftPalkim ainda não testou gravação em Android).
Histórico #
- 1.0.0 — fork inicial a partir do
screen_record_plus1.1.0: adiciona captura de.audioAppno iOS e remove o recorte via FFmpeg (e sua dependência).
Licença #
MIT, herdada do projeto original — ver LICENSE. Copyright original de Trần Văn Hiếu
(BrianTran24/screen_record); modificações para o PuftPalkim marcadas nos arquivos alterados.