Я пытаюсь разработать приложение, которое воспроизводит данные PCM с сервера.Как проигрывать потоковые данные PCM с сервера в iOS?
Я использовал AudioQueue, но он не работает.
PCM формат данных (от сервера):
Sample rate = 48000, num of channel = 2, Bit per sample = 16
И, сервер не потоковом фиксированные байты клиента.
(Streaming переменные байты Ex: 30848., 128, 2764, ... байт)
Мой исходный код:
Здесь ASBD структура, что я выставиться & создать аудио очереди объекта (язык: Свифт)
// Create ASBD structure & set properties.
var streamFormat = AudioStreamBasicDescription()
streamFormat.mSampleRate = 48000
streamFormat.mFormatID = kAudioFormatLinearPCM
streamFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked
streamFormat.mFramesPerPacket = 1
streamFormat.mChannelsPerFrame = 2
streamFormat.mBitsPerChannel = 16
streamFormat.mBytesPerFrame = (streamFormat.mBitsPerChannel/8) * streamFormat.mChannelsPerFrame
streamFormat.mBytesPerPacket = streamFormat.mBytesPerFrame
streamFormat.mReserved = 0
// Create AudioQueue for playing PCM streaming data.
var err = AudioQueueNewOutput(&streamFormat, self.queueCallbackProc, nil, nil, nil, 0, &aq)
...
Я выставиться структура ASBD & объекта создаются как и звуковыми сообщения выше.
воспроизведения звуковых сообщений в потоковом данных PCM очень хорошо в течение нескольких секунд,
но вскоре играет звук и выключается. Что я могу сделать?
(по-прежнему потоковое воспроизведение и очереди звуковых сообщений)
Пожалуйста, дайте мне любую идею.
работать с более низкой шириной полосы пропускания? –
Pardon? Я не знаю, что ты говоришь хорошо. – user6081283
Это работает, когда вы пытаетесь передать более компактный формат, например, mp3? –