Added currentPlaybackTime and completionBlock properties; read audio directly into buffer list supplied to callback instead of using my own buffer list to avoid memcpy overhead