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

iOS PIP local camera issue

Ouverte
#2,429 1 commentaire 11 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Dart
Étoiles
795
Forks
448
Merge moyen
12 h 19 min
PR mergées (30 j)
14

Description

### 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

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.