Raw*_*ani 5 java android android-mediaplayer
在我的项目中,我需要在MediaPlayer启动之前设置播放参数(当用户单击Button时MediaPlayer将启动)。但是当我使用下面给出的代码设置播放参数时,MediaPlayer会自动启动。
mediaPlayer.setPlaybackParams(mediaPlayer.getPlaybackParams().setSpeed(1.5f));
Run Code Online (Sandbox Code Playgroud)
现在,我该如何阻止它开始呢?
(你可以说,我可能只是在单击按钮时设置参数,但它不会工作,因为我有几个MediaPlayer来设置参数。)
根据MediaPlayer文档:
公共无效setPlaybackParams(PlaybackParams参数)
使用 PlaybackParams 设置播放速率。该对象将其内部 PlaybackParams 设置为输入,但当输入速度为零时,该对象会记住先前的速度。这允许对象在调用 start() 时恢复到之前的速度。在准备对象之前调用它不会更改对象状态。对象准备好后,以零速度调用它相当于调用pause()。对象准备好后,以非零速度调用它相当于调用 start()。
我怀疑你mediaPlayer.prepare()在设置参数之前调用或者你已经使用了mediaPlayer.create()(这相当于同时调用mediaPlayer.setDataSource()和两者。所以,你间接调用了),在这种情况下,播放器将在设置参数时开始播放,完全按照描述在文档中。mediaPlayer.prepare()mediaPlayer.prepare()
因此,使用mediaPlayer.setDataSource()然后设置播放参数(这样它就不会自动启动mediaPlayer)。在那之后打电话mediaPlayer.prepare()之前打电话mediaPlayer.start()。