【问题标题】:MediaPlayer in Android works with a delay [duplicate]Android中的MediaPlayer延迟工作[重复]
【发布时间】:2019-01-03 00:09:16
【问题描述】:

我正在尝试在非常精确的时刻播放非常短的 wav 文件(每个大约 0.5 秒)。

我已经加载了一个 wav 文件并尝试在它循环播放时播放它:

private val player = MediaPlayer()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val afd = resources.openRawResourceFd(R.raw.sub_kick_36_045)
        val fileDescriptor = afd.fileDescriptor

        try {
            player.setDataSource(
                fileDescriptor, afd.startOffset,
                afd.length
            )
            player.isLooping = true
            player.prepare()

        } catch (ex: IOException) {
            Log.d("Activity", ex.message)
        }

        play.setOnClickListener {
            player.start()
        }

        stop.setOnClickListener {
            player.stop()
        }
    }

声音正在播放,但是我在播放循环时有明显的延迟。

我发现一个应用程序可以非常准确地播放声音,但它使用更复杂的过程来播放文件并且文件本身非常奇特(不是 wav)

https://github.com/tube42/drumon

也许你们可以建议我如何以最小的延迟立即播放声音(0.5 秒 - 5 秒长)。 (使用一些java库什么的)

【问题讨论】:

    标签: java android


    【解决方案1】:

    你的音频很短,也许你可以试试“SoundPool”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 2016-05-17
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多