android7.1.2内置音频播放踩坑
在做APP的时候,需要播放声音。就遇到一个情况:
音频播放这块有问题请教一下,下面这段代码在 API34的模拟器中正常运行,在真机API25中就报错,有没有什么解决办法。
代码
package com.android.example.sound
import android.media.MediaPlayer
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.compose.ui.tooling.preview.Preview
class MainActivity : ComponentActivity() {
private var mediaPlayer: MediaPlayer? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
AudioPlayerApp(
onPlayClicked = {
if (mediaPlayer == null) {
mediaPlayer = MediaPlayer.create(this, R.raw.beep)
}
mediaPlayer?.start()
}
)
}
}
override fun onDestroy() {
super.onDestroy()
mediaPlayer?.release()
mediaPlayer = null
}
}
@Composable
fun AudioPlayerApp(onPlayClicked: () -> Unit) {
Box(
contentAlignment = Alignment.Center,
modifier = Modifier.fillMaxSize()
) {
Button(onClick = onPlayClicked, modifier = Modifier.padding(16.dp)) {
Text(text = "播放音频")
}
}
}
@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
AudioPlayerApp(onPlayClicked = {})
}
根本原因
我问了一圈人,给的示例代码都是差不多的,为什么我的就不行呢?
问题的原因竟然是mp3格式支持,wav格式不支持。wav格式高版本支持,低版本报错。
因为这个问题我搞了半天。