【问题标题】:MediaPlayer playback limitMediaPlayer 播放限制
【发布时间】:2015-06-08 03:40:53
【问题描述】:

我正在使用 MediaPlayer 播放我的音效,但在某个点(准确地说是 28 次播放)之后,MediaPlayer 不再播放。这就是我创建 MediaPlayer 的方式:

if(noteManager.rep.get((layer)).notes[j] == 0){
      MediaPlayer mp;
      switch (j){
          case 0:
               mp = MediaPlayer.create(InGame.this, R.raw.one);
               break;
          ...
      }}

在我打电话后:

mp.start();

此外,此代码每秒执行几次。在第 29 个音效之前一切正常,之后停止工作(没有声音)。我正在使用短 wav 文件。有什么想法吗?

【问题讨论】:

  • 您是否在创建新实例之前停止并释放以前的 MediaPlayer 实例?无论哪种方式,这似乎是 SoundPool 更适合的东西。
  • 不,我不会在任何时候停止。我不想阻止它们,因为它们在下一个开始播放时还没有完成。基本上6场比赛快速连续。第五次通过它开始发挥作用。我也来看看 SoundPool
  • 播放声音而不是音乐,您应该使用 SoundPool,而不是 MediaPlayer。 SoundPool 也适用于循环。

标签: android audio playback


【解决方案1】:

在点击事件之外使用 MediaPlayer

public class MainActivity extends AppCompatActivity {
private ImageView Reload;
private TextView Label;
private MediaPlayer mp;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Reload = (ImageView)findViewById(R.id.iv_Reload);
    Label = (TextView)findViewById(R.id.tv_appname);
    mp = MediaPlayer.create(getApplicationContext(),R.raw.reloadsound);
    Reload.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                v.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.iv_anim));
                mp.start();
        }
    });

}

【讨论】:

  • 点评来源: 嗨,这篇文章似乎没有为问题提供quality answer。请编辑您的答案并改进它,或者将其作为评论发布。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
  • 2012-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多