首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Kotlin中为Android MediaPlayer设置新的音频数据源

如何在Kotlin中为Android MediaPlayer设置新的音频数据源
EN

Stack Overflow用户
提问于 2022-05-13 04:40:21
回答 1查看 356关注 0票数 0

新来的机器人和Kotlin。

我正在尝试为Android MediaPlayer设置一个新的音频数据源。下面的代码编译和运行,但声音没有播放。没有碰撞,没有错误。祝酒词“媒体播放器准备好了!”从来没有出现,所以我认为媒体播放器没有做好准备。

如果我注释掉"val mediaPlayer = MediaPlayer.create(this,R.raw.fifo50)“后面的行,那么当我单击btnMaintain按钮时,它会播放fifo50声音。

这里少了什么?

代码语言:javascript
复制
class MainActivity :
AppCompatActivity(),
MediaPlayer.OnPreparedListener{


override fun onCreate(savedInstanceState: Bundle?) {

    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val btnMaintain = findViewById<Button>(R.id.btnMaintain)
    val mediaPlayer = MediaPlayer.create(this, R.raw.fifo50)
    mediaPlayer.stop()
    mediaPlayer.reset()
    mediaPlayer.setAudioAttributes(
        AudioAttributes.Builder()
            .setUsage(AudioAttributes.USAGE_MEDIA)
            .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
            .build()
                )
    mediaPlayer.setDataSource("android.resource://" + this.packageName + "/raw/maintain_speed")
    Toast.makeText(this, "Preparing Media Player", Toast.LENGTH_SHORT).show()
    mediaPlayer.setOnPreparedListener(this)
    mediaPlayer.prepareAsync()
    Toast.makeText(this, "Asynchronous preparation of Media Player started", Toast.LENGTH_SHORT).show()

    btnMaintain.setOnClickListener() {
        mediaPlayer.isLooping = true
        mediaPlayer.start()
    }
}

override fun onPrepared(p0: MediaPlayer) {
    Toast.makeText(this, "Media Player prepared!", Toast.LENGTH_SHORT).show()
}

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-13 06:16:19

MediaPlayer.create(...)在调用prepare()后返回MediaPlayer的新实例。在stop()reset()之后调用create(...)是无用的。使用原始资源时,必须使用setDataSource和AssetFileDescriptor (如setDataSource(resources.openRawResourceFd(R.raw.your_media)) )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72224529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档