А собственно разница то какая? Возвращается то звуковой канал, он и нужен, и равен хоть для 2д, хоть для 3д, хоть для 100500д.
1 минуту потратил что бы написать код:
Graphics3D (640, 480, 32, 0)
Global cam = CreateCamera()
Global cub = CreateCube()
Global ch
Global snd = Load3DSound("EXPLODEROCKET.wav")
Global list = CreateListener(cam)
While Not KeyHit(1)
UpdateWorld()
RenderWorld()
If Not ChannelPlaying(ch) Then ch = EmitSound(snd, cub)
Flip
Wend
End
Работает. Что я делаю не так?