Я строю рекордер экрана macOS, используя Swiftui + ScreencaptureKit (scstream) + AvFoundation, но я сталкиваюсь с постоянными авариями и проблемами, связанными с металлом. >
сбой из -за [mtligacceldevice supportsdynamicattributidide] < /p>
Ошибка: pgsqlcopyEdit *** Завершение APP из-за Uncauct Exception 'nsinvalidargumentException', причина: '-[mtligacceldevice supportsdynamicattribiteStride]: не признанный селектор, отправленный в экземпляр' < /p>
< /blockquote>
Это связано с металлическим трансляцией, но я явно не использую метал. [Внутренний] Поток, работающий в классе, инициированном пользователем качества обслуживания, ожидает более низкого потока QoS, работающего в классе качества обслуживания по умолчанию. < /p>
< /blockquote>
Это происходит, когда я запускаю scstream. [avassetWriterInput AppendSampleBuffer:] не может добавить образец буфера: необходимо запустить сеанс (с помощью -[avassetWriter StartsEssessionAtSourcetime:]) первым < /p>
< /blockquote>
< /li>
< /ul>
Что я попробовал < /h3>
Отключенный металлический рендеринг в основном изображении < /li>
LI> Сброс разрешения TCC (Screencapture сброса TCCUTIL) < /li>
Установленные инструменты командной строки XCODE + < /li>
Обеспечить правильную настройку ScstreamConfiguration < /li>
< /ul>
Snippet: setupstream () < /h3>
swiftCopyEditfunc setupStream() {
Task(priority: .userInitiated) {
do {
let content = try await SCShareableContent.excludingDesktopWindows(false, onScreenWindowsOnly: true)
guard let display = content.displays.first else {
await MainActor.run { self.error = .streamSetupFailed }
return
}
let filter = SCContentFilter(display: display, excludingApplications: [], exceptingWindows: [])
let configuration = SCStreamConfiguration()
configuration.width = 1920
configuration.height = 1080
configuration.minimumFrameInterval = CMTime(value: 1, timescale: 60)
configuration.capturesAudio = true
let newStream = SCStream(filter: filter, configuration: configuration, delegate: nil)
try await MainActor.run {
try newStream.addStreamOutput(self, type: .screen, sampleHandlerQueue: self.videoQueue)
try newStream.addStreamOutput(self, type: .audio, sampleHandlerQueue: self.audioQueue)
}
self.stream = newStream
try await stream?.startCapture()
} catch {
await MainActor.run { self.error = .streamSetupFailed }
}
}
}
< /code>
Вопросы < /h3>
Как я могу правильно обработать металлический рендеринг, чтобы избежать этого сбоя? < /li>
Как решить проблему инверсии приоритета с помощью scstream? >
Цель: сглаживание экрана записи с помощью видео/аудио в MacOS с использованием ScreenCaptureKit.
Подробнее здесь: https://stackoverflow.com/questions/794 ... eam-issues
Swiftui Macos Screen Recorder сбой из -за проблем с металлом/Scstream [закрыто] ⇐ IOS
Программируем под IOS
1739212205
Anonymous
Я строю рекордер экрана macOS, используя Swiftui + ScreencaptureKit (scstream) + AvFoundation, но я сталкиваюсь с постоянными авариями и проблемами, связанными с металлом. >
сбой из -за [mtligacceldevice supportsdynamicattributidide] < /p>
Ошибка: pgsqlcopyEdit *** Завершение APP из-за Uncauct Exception 'nsinvalidargumentException', причина: '-[mtligacceldevice supportsdynamicattribiteStride]: не признанный селектор, отправленный в экземпляр' < /p>
< /blockquote>
Это связано с металлическим трансляцией, но я явно не использую метал. [Внутренний] Поток, работающий в классе, инициированном пользователем качества обслуживания, ожидает более низкого потока QoS, работающего в классе качества обслуживания по умолчанию. < /p>
< /blockquote>
Это происходит, когда я запускаю scstream. [avassetWriterInput AppendSampleBuffer:] не может добавить образец буфера: необходимо запустить сеанс (с помощью -[avassetWriter StartsEssessionAtSourcetime:]) первым < /p>
< /blockquote>
< /li>
< /ul>
Что я попробовал < /h3>
Отключенный металлический рендеринг в основном изображении < /li>
LI> Сброс разрешения TCC (Screencapture сброса TCCUTIL) < /li>
Установленные инструменты командной строки XCODE + < /li>
Обеспечить правильную настройку ScstreamConfiguration < /li>
< /ul>
Snippet: setupstream () < /h3>
swiftCopyEditfunc setupStream() {
Task(priority: .userInitiated) {
do {
let content = try await SCShareableContent.excludingDesktopWindows(false, onScreenWindowsOnly: true)
guard let display = content.displays.first else {
await MainActor.run { self.error = .streamSetupFailed }
return
}
let filter = SCContentFilter(display: display, excludingApplications: [], exceptingWindows: [])
let configuration = SCStreamConfiguration()
configuration.width = 1920
configuration.height = 1080
configuration.minimumFrameInterval = CMTime(value: 1, timescale: 60)
configuration.capturesAudio = true
let newStream = SCStream(filter: filter, configuration: configuration, delegate: nil)
try await MainActor.run {
try newStream.addStreamOutput(self, type: .screen, sampleHandlerQueue: self.videoQueue)
try newStream.addStreamOutput(self, type: .audio, sampleHandlerQueue: self.audioQueue)
}
self.stream = newStream
try await stream?.startCapture()
} catch {
await MainActor.run { self.error = .streamSetupFailed }
}
}
}
< /code>
Вопросы < /h3>
Как я могу правильно обработать металлический рендеринг, чтобы избежать этого сбоя? < /li>
Как решить проблему инверсии приоритета с помощью scstream? >
Цель: сглаживание экрана записи с помощью видео/аудио в MacOS с использованием ScreenCaptureKit.
Подробнее здесь: [url]https://stackoverflow.com/questions/79424848/swiftui-macos-screen-recorder-crashing-due-to-metal-scstream-issues[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия