播放声音可以用MediaPlayer和AudioTrack,两者都提供了java API供应用开发者使用。虽然都可以播放声音,但两者还是有很大的区别的。其中最大的区别是MediaPlayer可以播放多种格式的声音文件,例如MP3,AAC,WAV,OGG,MIDI等。MediaPlayer会在framework层创建对应的音频解码器。

MediaPlayer在播放音频文件时,通过其解码器将不同格式的音频文件转换为可播放的PCM数据,然后通过系统的音频输出设备播放出来。详细的使用方法可以参考Android使用MediaPlayer播放音频文件从头学Android之多媒体使用MediaPlayer播放音频示例代码。此外,MediaPlayer还支持网络音频的播放,具体实现可以参考Android提高之MediaPlayer播放网络音频的实现方法

另一方面,AudioTrack则是用于直接处理PCM音频数据的工具。它适用于需要精确控制音频播放过程的场景,如游戏音效和实时音频处理。更多关于AudioTrack的使用,可以参考Android音频系统AudioTrack使用方法详解android使用AudioTrack低延迟播放音频文件

总的来说,选择MediaPlayer还是AudioTrack取决于应用的需求。如果需要播放各种格式的音频文件并且不需要对播放过程进行精确控制,那么MediaPlayer是一个较好的选择。而如果需要处理实时音频数据或者对播放过程进行精确控制,AudioTrack则更为适用。