2017-01-09 15 views
10

Mam problemy z uzyskaniem pozycyjnego dźwięku do pracy w programie SceneKit. Począwszy od szablonu SceneKit gry generowanego przez Xcode Dodałem następujący kod do końca metody handleTap:W jaki sposób uzyskać dźwięk pozycyjny w programie SceneKit?

let ship = scnView.scene!.rootNode.childNode(withName: "ship", recursively: true)! 
if let source = SCNAudioSource(fileNamed: "art.scnassets/monoAudioTest.wav") 
{ 
    source.volume = 1 
    source.isPositional = true 
    source.shouldStream = true 
    source.loops = true 
    source.load() 
    let player = SCNAudioPlayer(source: source) 
    ship.addAudioPlayer(player) 
} 

ship.runAction(SCNAction.move(to: SCNVector3(0, 0, -10000), duration: 8)) 

sztukach audio, ale wielkość nie spada jak przenosi strumień z dala od kamery. Czy brakuje mi pewnych kroków lub błędnych założeń?

Wysłano krzyżyk do Apple Developer Forums.

+1

Po prostu próbowałem, ale z przesunięciem od lewej do prawej zamiast z bliska. Użyłem również MP3 zamiast WAV. Nie słyszałem też żadnej zmiany pozycyjnej. Próbowałem przejść na SCNAction.playAction, ale to nie miało znaczenia. –

+0

Miałem podobne doświadczenie do @HalMueller z audio pozycyjnym w SpriteKit. – Confused

Odpowiedz

3

Powinieneś być w stanie uzyskać pozycyjny dźwięk z source.shouldStream = false.

+0

Wydaje się całkowicie absurdalne, że to powinno działać, ale rozwiązuje mój problem. Czy uważasz, że to błąd, czy tylko słabo udokumentowane? –

+0

To rozwiązanie nie działa dla mnie, wypróbowałem każdą konfigurację, o której myślę, że objętość nigdy się nie zmienia, gdy węzeł się oddala. Próbowałem także różnych formatów audio, w tym .aif, .mp3 i .wav, bez różnicy. Czytałem w innym poście, że .Aif pracował dla kogoś, ale nie ma szczęścia dla mnie. Być może ma to związek z używanym kodowaniem. –

+1

@AdamEisfeld Czy Twój plik audio jest mono? Jeśli dźwięk jest stereo, SceneKit nie umieści go. –

6

Jak wspomniał Jed Soane i potwierdził Apple w radarze, problem polegał na tym, że mój plik audio był stereo zamiast mono. Tylko pliki audio mono będą działać dla dźwięku pozycyjnego.

Powiązane problemy