Tencent-RTC / Tencent-RTC/TRTC_Flutter

调用 snapshotVideo 导致应用奔溃

Open
#65 4 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.