Android文档中说,本机MediaPlayer支持某些格式的AAC,但我似乎无法使其正常工作。
我正试图通过MediaPlayer流式传输音频,当流式传输使用MP3时,我的代码可以工作,但当它使用AAC时则不能工作。
基本上,实例化并打开流的代码如下:
Media Player mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource("http://example.com:6000/stream");
...
mediaPlayer.prepare();
mediaPlayer.start();
*媒体播放器已准备好并以异步方式启动。
我得到的错误信息是:
Prepare failed.: status=0x1
是否可以使用本机MediaPlayer来消费AAC流?
还是我被迫使用第三方图书馆?
这显然是不可能的,因为实现AAC格式的解码器需要许可证,因此Android框架没有解码器。来自AAC许可页面常见问题解答:
世界卫生组织必须签署许可证?最终用户编码器和/或解码器产品的制造商或开发商需要AAC专利许可证。
但是,您可以检查aacplayer和BASS,了解如何为私人使用实现此功能。
同时结账ExoPlayer。