是的,可以将 "data:audio/mpeg;base64" 开头的音频数据解码成原始音频数据,并使用 AudioTrack 播放。\n\n以下是一个示例代码,演示了如何解码 base64 音频数据并使用 AudioTrack 播放:\n\njava\nimport android.media.AudioFormat;\nimport android.media.AudioManager;\nimport android.media.AudioTrack;\nimport android.os.Bundle;\nimport android.util.Base64;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\npublic class MainActivity extends AppCompatActivity {\n\n private AudioTrack audioTrack;\n private byte[] audioData;\n\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n\n String base64AudioData = \"data:audio/mpeg;base64,//uQxAQAAAAA...\" // 以 data:audio/mpeg;base64 开头的 base64 音频数据\n\n // 解码 base64 音频数据为原始音频数据\n byte[] decodedData = Base64.decode(base64AudioData.substring(base64AudioData.indexOf(\",\" + 1), Base64.DEFAULT);\n\n // 初始化 AudioTrack\n int bufferSize = AudioTrack.getMinBufferSize(44100, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);\n audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize, AudioTrack.MODE_STREAM);\n\n // 将解码后的音频数据写入 AudioTrack\n audioData = decodedData;\n audioTrack.play();\n audioTrack.write(audioData, 0, audioData.length);\n }\n\n @Override\n protected void onDestroy() {\n super.onDestroy();\n // 释放资源\n if (audioTrack != null) {\n audioTrack.stop();\n audioTrack.release();\n }\n }\n}\n\n\n请注意,上述代码仅是一个示例,需要根据实际情况进行修改和适配。

Android 开发:如何解码并播放 data:audio/mpeg;base64 音频数据

原文地址: https://www.cveoy.top/t/topic/pSxn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录