gpt4 book ai didi

android - MediaPlayer 停止播放声音 - Android

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:04 24 4
gpt4 key购买 nike

这是一个简单的钢琴应用程序,它可以工作,但有一个问题。单击大约 20 次(有时正好是 28 次)后,即使我单击按钮也不会播放任何声音。该应用程序不会崩溃或不会警告我任何事情。没什么。没有声音。你有什么想法吗?

package com.example.playaudio;

import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class MainActivity extends Activity implements OnClickListener{
private MediaPlayer mp;
private MediaPlayer mp2;
private MediaPlayer mp3;
private MediaPlayer mp4;
private MediaPlayer mp5;
private MediaPlayer mp6;
private MediaPlayer mp7;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
Button button1=(Button)findViewById(R.id.button_1);
Button button2=(Button)findViewById(R.id.button_2);
Button button3=(Button)findViewById(R.id.button_3);
Button button4=(Button)findViewById(R.id.button_4);
Button button5=(Button)findViewById(R.id.button_5);
Button button6=(Button)findViewById(R.id.button_6);
Button button7=(Button)findViewById(R.id.button_7);

button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
button5.setOnClickListener(this);
button6.setOnClickListener(this);
button7.setOnClickListener(this);

}

public void onClick(View v) {
int resId;
int resId2;
int resId3;
int resId4;
int resId5;
int resId6;
int resId7;


switch (v.getId()) {
case R.id.button_1:
resId = R.raw.a;
mp = MediaPlayer.create(this, resId);

mp.start();
break;
case R.id.button_2:
resId2 = R.raw.b;
mp2 = MediaPlayer.create(this, resId2);
mp2.start();
break;
case R.id.button_3:
resId3 = R.raw.c;
mp3 = MediaPlayer.create(this, resId3);
mp3.start();
break;
case R.id.button_4:
resId4 = R.raw.d;
mp4 = MediaPlayer.create(this, resId4);
mp4.start();
break;
case R.id.button_5:
resId5 = R.raw.e;
mp5 = MediaPlayer.create(this, resId5);
mp5.start();
break;
case R.id.button_6:
resId6 = R.raw.f;
mp6 = MediaPlayer.create(this, resId6);
mp6.start();
break;
case R.id.button_7:
resId7 = R.raw.p;
mp7 = MediaPlayer.create(this, resId7);
mp7.start();
break;

}


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}



}

最佳答案

看起来您正在创建一个新的 MediaPlayer 实例来播放每个声音。您应该重新使用它们或清理它们。

来自documentation of the MediaPlayer.create()方法:

Convenience method to create a MediaPlayer for a given resource id. On success, prepare() will already have been called and must not be called again.

When done with the MediaPlayer, you should call release(), to free the resources. If not released, too many MediaPlayer instances will result in an exception.

关于android - MediaPlayer 停止播放声音 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23665250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com