2016-08-02 8 views
0

私はスプライトキットのフロントとバックのチャンネルを使ってポジショナルオーディオを再生しようとしています.Apple TVデバイスでテストしています。スプライトキットの5.1チャンネル位置オーディオ出力は可能ですか?

私は、次のコードを使用しています:

let musicURL = NSBundle.mainBundle().URLForResource("music", withExtension: "m4a") 
    let music = SKAudioNode(URL: musicURL!) 

    addChild(music) 

    music.positional = true 
    music.position = CGPoint(x: 0, y: 0) 

    let moveForward = SKAction.moveToY(1024, duration: 2) 
    let moveBack = SKAction.moveToY(-1024, duration: 2) 


    let sequence = SKAction.sequence([moveForward, moveBack]) 
    let repeatForever = SKAction.repeatActionForever(sequence) 

    music.runAction(repeatForever) 

は何を達成したいことは、バックチャネルに正面からパンの音ですが、スプライトキットはわずか2チャンネルのステレオ出力を使用しているようです。

moveToXの代わりにmoveToXを使用すると、左から右に音がパンされます。

私は5.1サウンド出力が必要なことを知らせるための初期化コードがありませんが、SKAudioNode位置指定機能が2チャンネルステレオ出力でのみ機能するかどうかはわかりません。

スプライトキットでは2チャンネル以上のポジショナルオーディオが得られていますか?それともAVFoundationやOpenALでさえどうでしょうか?

私はSceneKitと同様のコードを試していますが、ポジションオーディオにも2チャンネルしか使用していないようです。

+0

出発点は、この既存の答えに記載されています。 – xpereta

答えて

0

SceneKitを使用してサウンドを3D空間に配置することはできません。 SKAudioNodeを使用するのではなく、AVFoundationを直接使用してサウンドを再生してください。

let session = AVAudioSession.sharedInstance() 
session.setCategory(AVAudioSessionCategoryPlayback) 
session.setActive(true) 
session.setPreferredOutputNumberOfChannels(6) 

そして出力に6つの出力チャンネルをAVAudioEnvironmentNodeセットアップを配線:

まず、あなたはセットアップに5.1チャンネル出力レイアウトを使用するオーディオセッションを持っています。私は理由が下層AVAudioEnvironmentNodeが適切なオーディオチャンネルレイアウトで構成されていないことかもしれドキュメントで読んだものから

https://stackoverflow.com/a/35657416/563802

関連する問題