Pergunta

Alguém poderia me explicar como o aberto se encaixa no esquema do som no iPhone?

Parece haver APIs em diferentes níveis para lidar com o som. Os de nível superior são fáceis de entender.

Mas meu entendimento fica sombrio no fundo. Há áudio central, unidades de áudio, Open.

Qual é a conexão entre estes? O Open é o substrato, sobre o qual repousa o áudio do núcleo (que contém como um de seus objetos de nível inferior unidades de áudio)?

O Openal não parece estar documentado pelo Xcode, mas posso executar o código que usa suas funções.

Foi útil?

Solução

Isso é o que eu descobri:

O substrato é o áudio central. Especificamente, unidades de áudio.

Portanto, as unidades de áudio formam a camada base e alguma estrutura de baixo nível foi construída sobre isso. E todo o CABOODLE é denominado áudio do núcleo.

O Openal é uma API multiplataforma - os criadores estão tentando refletir a portabilidade do OpenGL. Algumas empresas estão patrocinando o Openal, incluindo laboratórios criativos e a Apple!

Portanto, a Apple forneceu essa API, basicamente como um invólucro fino sobre o Core Audio. Acho que isso é para permitir que os desenvolvedores puxem o código facilmente. Esteja avisado, é uma implementação incompleta; portanto, se você deseja que o Opental faça algo que o áudio principal possa fazer, fará isso. Mas, caso contrário, não será.

Tipo de contra -intuitivo - apenas olhando para a fonte, parece que o Openal está no nível mais baixo. Não tão!

Outras dicas

O Core Audio abrange muitas coisas, como ler e escrever vários formatos de arquivo, converter entre codificações, retirando quadros dos fluxos, etc. Grande parte dessa funcionalidade é coletada como a "caixa de ferramentas de áudio". O Core Audio também oferece várias APIs para processamento de fluxos de áudio, reprodução, captura ou ambos. O nível mais baixo é o áudio, que funciona com áudio não compactado (PCM) e tem algumas coisas legais para aplicar efeitos, mistura, etc. Filas de áudio, implementadas no topo das unidades de áudio, são muito mais fáceis porque trabalham com formatos compactados (não apenas PCM) e salve você de alguns desafios de encadeamento. O Open também é implementado no topo das unidades de áudio; Você ainda precisa usar o PCM, mas pelo menos o encadeamento não é assustador. A diferença é que, como não é da Apple, suas convenções de programação são totalmente diferentes do áudio do núcleo e do restante do iOS (mais obviamente, é uma API de push: se você deseja transmitir com o Open, você pesquise suas fontes para ver se elas têm Esgotaram seus buffers e empurrar os novos; por contraste, as filas de áudio e as unidades de áudio são baseadas em tração, pois você recebe um retorno de chamada quando novas amostras são necessárias para a reprodução).

Nível mais alto, como você viu, é uma coisa legal como Media Player e AV Foundation. Isso é muito mais fácil se você estiver apenas tocando um arquivo, mas provavelmente não vai lhe dar acesso profundo o suficiente se você quiser fazer algum tipo de efeitos, processamento de sinais etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top