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

iOS PIP local camera issue

Đang mở
#2,429 1 bình luận 11 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Dart
Star
795
Fork
448
Merge trung bình
12 giờ 19 phút
Pull request đã merge (30 ngày)
14

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.