AgoraIO-Extensions / AgoraIO-Extensions/Agora-Flutter-SDK

iOS PIP local camera issue

Aperta
#2,429 1 commento 11 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Dart
Stelle
795
Fork
448
Merge medio
12h 19m
PR unite (30g)
14

Descrizione

### Version of the agora_rtc_engine

6.3.2-sp.43216.b.5(release/6.3)

### Platforms affected

- [ ] Android
- [x] iOS
- [ ] macOS
- [ ] Windows
- [ ] Web

### Information

I tried to use the PIP feature on iOS following the guide at the given link. As described in the iOS Setup section, I selected "Audio, Airplay, and Picture in Picture" under Background Modes. However, I couldn't configure the following setting because it needs to be set within the native code:

> iOS ≥ 16: Set `multitaskingCameraAccessEnabled` to `true` in capture session (coming soon)

I suspect this is causing the local camera to disconnect when entering PIP mode.

@peilinok Do you have plans to fix this issue? If not, is there any way I can maintain video calls while in PIP mode?

### Steps to reproduce

1. Start video call (both local, remote video working normally)
2. Switch app to background to activate PIP mode
3. Check in PIP window

### Expected results

- Local camera video should continue streaming in PIP mode

### Actual results

- Local video: Freezes at the point of PIP entry
- Remote Video: Continues normal streaming in PIP

### Code sample

https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/blob/release/6.3/example/lib/examples/advanced/picture_in_picture/picture_in_picture.dart

### Screenshots or Video

https://github.com/user-attachments/assets/56cccf1a-6417-4a36-b964-47ce463c90c1

### Logs

Logs

```console
flutter: pipPossible: true
flutter: [setupPip] options: {autoEnterEnabled: true, sourceContentView: 0, contentView: 0, videoStreams: [{connection: {channelId: voice, localUid: 0}, canvas: {uid: 0, renderMode: 1, mirrorMode: 1, setupMode: 1, sourceType: 0}}], contentViewLayout: {padding: 0, spacing: 2, row: 1, column: 0}, preferredContentWidth: 375, preferredContentHeight: 667, controlStyle: 2}
flutter: [onPipStateChanged] state: AgoraPipState.pipStateStarted, error: null
flutter: [onPipStateChanged] state: AgoraPipState.pipStateStopped, error: null
flutter: [didChangeAppLifecycleState]: AppLifecycleState.inactive
flutter: [onPipStateChanged] state: AgoraPipState.pipStateStarted, error: null
flutter: [didChangeAppLifecycleState]: AppLifecycleState.hidden
flutter: [didChangeAppLifecycleState]: AppLifecycleState.paused
flutter: [didChangeAppLifecycleState]: AppLifecycleState.hidden
flutter: [didChangeAppLifecycleState]: AppLifecycleState.inactive
flutter: [didChangeAppLifecycleState]: AppLifecycleState.resumed
flutter: [onPipStateChanged] state: AgoraPipState.pipStateStopped, error: null
flutter: [didChangeAppLifecycleState]: AppLifecycleState.inactive
flutter: [didChangeAppLifecycleState]: AppLifecycleState.resumed
flutter: [didChangeAppLifecycleState]: AppLifecycleState.inactive
flutter: [onPipStateChanged] state: AgoraPipState.pipStateStarted, error: null
flutter: [didChangeAppLifecycleState]: AppLifecycleState.hidden
flutter: [didChangeAppLifecycleState]: AppLifecycleState.paused
flutter: [onPipStateChanged] state: AgoraPipState.pipStateStopped, error: null
```

### Flutter Doctor output

Doctor output

Image

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.