You seem to set things up correctly here, so for the first part I would check to see if this:
[[NSFileManager defaultManager] fileExistsAtPath:path]
returns YES
. It might not have finished saving the file before you start playing it. Or for the worst case, it would take a little longer for sendSynchronousRequest
to fail.
For the second part:
audioPlayerDidFinishPlaying
is not being called because you need to set this up:
player.delegate = self;
Hope this helps.