Implement NativeTonePlayer. Fix #656

Fix #656 and a few tiny bugs related to audio playing.
Can you add a th.check(true) right before this line?