I am exploring audio development and am overwhelmed by the numerous libraries available:
- AVFoundation
- MediaPlayer
- AVFAudio
- Audio Engine
- CoreAudio
- AudioToolbox
- Audio Unit
Which of these should I use to play both network or local music files (flac/wav/mp3/aac/wma/ogg)? What are their specific roles?
My understanding is that I should use ffmpeg for demuxing to unpackage, then decode the stream to get PCM samples, possibly using Audio Engine for playback. Is this a software decoding method? For Apple-supported formats like mp3, can I bypass ffmpeg for decoding? Which library would be most suitable in this case?
Additionally, how do I extract metadata (song name, artist, cover, lyrics, etc.) from music files? Apple’s own solutions seem to support only ID3 or iTunes tags. How should I handle other formats like wav/flac?
The two links below are the resources I’ve referenced, but they seem outdated. My search for newer, reliable explanations has been fruitless.




