Я создаю видеоэкран в реальности для приложения AR. Мой код работает правильно на iOS 17, но на iOS 18 VideoMaterial рендесирует как розовые полосы. Инженер Apple предположил, что это может указывать на то, что материал не применяется правильно. Может ли это быть связано с изменениями в поведении RealityKit или AvPlayer в iOS 18? AvPlayerItem .
[*] привязывать модель сущность на аримагейнхор. /> фактический результат: < /strong>
На iOS 18, плоскость появляется розовым, что указывает на то, что VideoMaterial < /code> не применяется. < /p>
то, что я попробовал: < /strong> < /p>
. /> проверил, что AvPlayerItem и VideoMaterial инициализируются правильно.
обеспечить AvPlayer . Что изменит видео. рендеринг в реальности, и как я могу решить эту проблему? < /p>
// Create Video Screen
private func createVideoScreen(width: Float, height: Float, url: URL, uuid: UUID) -> ModelEntity {
let screenMesh = MeshResource.generatePlane(width: width, height: height)
let videoItem = createVideoItem(with: url)
let videoMaterial = createVideoMaterial(with: videoItem, uuid: uuid)
let videoScreenModel = ModelEntity(mesh: screenMesh, materials: [videoMaterial])
return videoScreenModel
}
// Create Video Item
private func createVideoItem(with url: URL) -> AVPlayerItem {
let asset = AVURLAsset(url: url)
let videoItem = AVPlayerItem(asset: asset)
return videoItem
}
// Create Video Material
private func createVideoMaterial(with videoItem: AVPlayerItem, uuid: UUID) -> VideoMaterial {
let player = AVPlayer()
player.actionAtItemEnd = .none
let videoMaterial = VideoMaterial(avPlayer: player)
player.replaceCurrentItem(with: videoItem)
player.play()
NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: player.currentItem, queue: .main) { _ in
player.seek(to: .zero)
player.play()
}
videoPlayers[uuid] = player
return videoMaterial
}
// Place Video Screen
private func placeVideoScreen(videoScreen: ModelEntity, imageAnchor: ARImageAnchor, uuid: UUID) {
guard let arView = arView else { return }
let imageAnchorEntity = AnchorEntity(anchor: imageAnchor)
let rotationAngle = simd_quatf(angle: GLKMathDegreesToRadians(-90), axis: SIMD3(x: 1, y: 0, z: 0))
videoScreen.setOrientation(rotationAngle, relativeTo: imageAnchorEntity)
imageAnchorEntity.addChild(videoScreen)
arView.scene.addAnchor(imageAnchorEntity)
activeAnchors[uuid] = imageAnchorEntity
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... how-to-fix
Realitykit Videomaterial рендегирует розовым на iOS 18, но работает на iOS 17 - как исправить? ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу запретить IDEA вводить метод, когда он становится розовым в интерфейсе отладки?
Anonymous » » в форуме JAVA - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Текстуры загружаются в редакторе, но не в автономном режиме (отображаются розовым цветом)
Anonymous » » в форуме C# - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как заполнить определенную область (носок) розовым цветом в графике черепах?
Anonymous » » в форуме Python - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-