【问题标题】:audio streaming services failing to recognize file type音频流服务无法识别文件类型
【发布时间】:2012-08-22 15:21:14
【问题描述】:

我正在使用 Audio Streaming Services 库(基于 Matt Ghallager 的 tutorial)进行流式音频直播,但我一直在这部分崩溃:

err = AudioQueueStart(audioQueue, NULL);
if (err)
{
    [self failWithErrorCode:AS_AUDIO_QUEUE_START_FAILED];
    return;
}

错误码是:kAudioDeviceUnsupportedFormatError.. 这家伙是在CoreAudio/AudioHardware.h中定义的,好像是硬件相关的问题。我在网上找不到有关此错误的很多有用信息。

有趣的是,早些时候我在尝试这个时遇到了类似的问题:

// create the audio 
err = AudioQueueNewOutput(&asbd, MyAudioQueueOutputCallback, self, NULL, NULL, 0, &
    if (err)
{
    [self failWithErrorCode:AS_AUDIO_QUEUE_CREATION_FAILED];
    return;
}

this 帖子中遇到了同样的问题,但帖子的作者错误地将他们的错误代码归因于 AudioQueueStart 而不是 AudioQueueNewOutput

我收到此错误代码:kAudioFormatUnsupportedDataFormatError.. 我的补救措施是手动添加此代码:

asbd.mFormatID = kAudioFormatMPEGLayer3;

因为我发现调用

AudioFileStreamGetProperty(inAudioFileStream, kAudioFileStreamProperty_DataFormat, &asbdSize, &asbd);

最初给我kAudioFormatMPEGLayer1 作为mFormatID,而不是kAudioFormatMPEGLayer3,这是我实际播放的音频文件的.mp3。

最后.. 可能我第一次注意到有问题是在我最初调用这个函数时:

AudioFileStreamOpen((__bridge void*)streamer, ASPropertyListenerProc, ASPacketsProc, 
                                        0, &(streamer->audioFileStream));

我第一次没有将 inFileTypeHint 提供给 function 时导致

AudioFileStreamParseBytes(streamer->audioFileStream, inDataByteSize, inData, 0);

调用解析字节失败..(特别是..我得到 Parse bytes failed.err: typ?1954115647 错误消息,即 kAudioFileUnsupportedFileTypeError)..

我解决这个问题的方法是(你猜对了)手动添加文件类型提示:

    streamer->err = AudioFileStreamOpen((__bridge void*)streamer, ASPropertyListenerProc, ASPacketsProc, 
                                        kAudioFileMP3Type, &(streamer->audioFileStream));

所以你可以看到.. 我推到地毯下的一个问题终于来咬我.. 但我不确定为什么解析器无法手动识别我的音频文件类型.. 以及为什么我必须继续对该值进行硬编码..只是让它最终失败。

【问题讨论】:

    标签: ios audio-streaming


    【解决方案1】:

    事实证明,我的数据包没有按正确的顺序(也没有完成).. 我想出来的方法是使用十六进制程序 (hexFiend) 打开有问题的 mp3 文件,然后我将关键数据包与实际发送的数据包进行比较。我修复了这个差异,之后一切正常。

    【讨论】:

    • 您是如何解决数据包顺序的?谢谢!
    猜你喜欢
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    相关资源
    最近更新 更多