Проблема повторного использования звука в GVR Audio Engine для iOS - PullRequest
0 голосов
/ 02 апреля 2019

Я использую GVRAudioSDK для iOS для воспроизведения пространственных монофонических звуков. Я не могу правильно воспроизвести звук, который уже играл. (Вторая игра не слышна).

Обходной путь, который я нашел для безопасного воспроизведения звука, следующий (в настоящее время я воссоздаю звуковой объект каждый раз, когда мне нужно снова воспроизвести звук):

if !self.gvrAudioEngine.isSourceIdValid(self.mySourceId) || self.gvrAudioEngine.isSoundPlaying(self.mySourceId) {
        self.gvrAudioEngine.stopSound(self.mySourceId)
        self.mySourceId = self.gvrAudioEngine.createSoundObject(soundName)
}

Еще одна проблема, с которой я столкнулся, заключается в том, что при перемещении звука он воспроизводится неправильно (проблемы с производительностью):

var points = []
for t in 0..<nbPoints {
    let current = from + directionVector * Float(t)
    points.append(current)
}
let duration = 5.0
let nbPoints = 40
let unitDuration = duration / Double(nbPoints)
self.gvrAudioEngine.playSound(self.sourceId, loopingEnabled: false)
for i in 0..<points.count {
    DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(i) * unitDuration, execute: {
        self.gvrAudioEngine.setSoundObjectPosition(
        self.sourceId, x: points[i].x, y: points[i].y, z: points[i].z)
    })
}

Вот ссылка на API, который я использую: https://developers.google.com/vr/ios/reference/interface_g_v_r_audio_engine

...