class MusicPlayer(c: Context){
var context: Context = c
private var player: MediaPlayer = MediaPlayer.create(context,R.raw.sth)
fun start() {
Log.d("Music", context.toString())
player.setOnPreparedListener(OnPreparedListener {
Log.i(
"Music",
"player: $player"
)
})
player.isLooping = false
player.setVolume(1F, 1F)
Log.d("Music", "START")
player.start()
Log.d("Music", "AFTER START")
}
}
我有一个简单的类来控制音乐的开始。start()
被另一个Activity调用为:
class MainActivity : AppCompatActivity(){
private lateinit var player: MusicPlayer
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
player = MusicPlayer(this)
player.start()
}
}
日志记录start()
中的所有内容,所以我认为player.start()
正在通过,但即使我在Emulator上设置了最大音量也没有声音。. mp3文件在raw
文件夹中。
1条答案
按热度按时间wwwo4jvm1#
你用来在你的
MediaPlayer
上设置音量的函数应该没问题。设置本播放器的音量推荐使用此API,用于均衡应用内的音频流输出,除非您是编写应用来控制用户设置,否则应优先使用此接口,而不是AudioManager#setStreamVolume(int,int,int),它设置特定类型的所有流的音量。请注意,传递的音量值是范围为0.0到1.0的原始标量。UI控件应按对数缩放。
因此,在尝试下面的进一步建议之前,您可以看看以下内容:
1.你的mp3文件可以播放吗?
1.你能确保你的模拟器的最大音量是用于播放媒体吗?不是用于播放铃声或闹钟吗?
1.你的模拟器能发出声音吗?你能试试另一个模拟器吗?或者甚至找一个真实的的设备试试?
如果以上方法都不起作用,您可以考虑对全局卷进行如下操作:
当您在App中修改音频设置时,请确保您已在Manifest文件中添加了相应的权限: