Tencent-RTC / Tencent-RTC/TRTC_Flutter
调用 snapshotVideo 导致应用奔溃
Nobody has claimed this yet.
- Dominant language
- Dart
- Stars
- 82
- Forks
- 39
- Avg merge
- 27m
- Merged PRs (30d)
- 1
Description
【当前现象】:持续调用 snapshotVideo 到第 23s iOS应用会奔溃
【SDK版本】:tencent_trtc_cloud-2.4.1
【iOS版本】:iOS 15.2
【设备型号】:iPhone X
【是否必现】:必现
【复现步骤】:
在 iOS 15.2 上的 iPhone X 设备上运行应用
调用 snapshotVideo 方法,并设置 isRecording 为 true
在持续调用 snapshotVideo 方法的过程中,平均每秒截取16张图,应用会在第 23s 崩溃
【期望结果】:应用能够正常运行
【代码】:
while (isRecording) {
await Future.delayed(const Duration(milliseconds: captureInterval));
String suffix = DateTime.now().millisecondsSinceEpoch.toString();
String filePath = "$recordStoragePath/${suffix}_temp.jpg";
await client.snapshotVideo(
trtcChannel.isLocal ? null : channel.member.userId,
0,
filePath,
);
}
【异常信息】:
[XPC] Handle connection with error: Connection interrupted
[Process] 0x13a944000 - NetworkProcessProxy::didClose (Network Process 8461 crash)
[ServicesDaemonManager] interruptionHandler is called. -[FontServicesDaemonManager connection]_block_invoke
* thread #72, queue = 'com.Metal.CommandQueueDispatch', stop reason = EXC_RESOURCE RESOURCE_TYPE_MEMORY (limit=1850 MB, unused=0x0)
frame #0: 0x00000001bd1d4b10 libsystem_kernel.dylib`mach_msg_trap + 8
libsystem_kernel.dylib`mach_msg_trap:
-> 0x1bd1d4b10 <+8>: ret
libsystem_kernel.dylib`mach_msg_overwrite_trap:
0x1bd1d4b14 <+0>: mov x16, #-0x20
0x1bd1d4b18 <+4>: svc #0x80
0x1bd1d4b1c <+8>: ret
Target 0: (Runner) stopped.
Lost connection to device.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the snapshotVideo call in the issue's reproduction loop and reproduce it on iOS 15.2 with an iPhone X, using the stated capture rate and isRecording=true. Investigate the reported memory-limit crash and verify completion by running the same sustained capture scenario without the application crashing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart, flutter, ios
- Domain
- audio-video-rtc, mobile-dev, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100