gpt4 book ai didi

android - 在Android上播放声音

转载 作者:行者123 更新时间:2023-12-03 00:48:24 24 4
gpt4 key购买 nike

package gal.doron.ballinthehole;

import android.media.MediaPlayer;

public class Bricks
{
Brick[][] bricks;
public Bricks(int rows, int cols, float brickW, float brickH)
{
bricks = new Brick[rows][cols];
float x=0,y=0;
for(int i=0;i<rows;i++,y+=brickH)
{
x=0;
for(int j=0;j<cols;j++,x+=brickW)
{
bricks[i][j] = new Brick(x, y, brickW, brickH, 1);
}
}
}

public boolean isHitAll()
{
for(int i=0;i<rows();i++)
{
for(int j=0;j<cols();j++)
{
if(bricks[i][j].getType()!=0 && bricks[i][j].getType()!=4)
return false;
}
}
MediaPlayer mp = MediaPlayer.create(this, R.raw.hopa);
mp.start();
return true;
}
}

大家好,当名为'isHitAll()'的函数为true(击中所有积木时),您能帮助我播放声音吗(在我的情况下为“cala”)?

这是我的尝试。.我在此行中收到错误“MediaPlayer mp = MediaPlayer.create(this,R.raw.hopa);”
“类型为MediaPlayer的方法crate(Context,int)不适用于参数(Brick,int)”。

对不起,我的英语,谢谢!

最佳答案

您收到错误The method crate(Context, int) in the type MediaPlayer is not applicable for the arguments (Brick,int)。因为您无法在需要Brick的地方传递“Context”类型的对象。由于Brick不是并且不会扩展或实现Activity,因此无法引用当前ActivityContext

一种可能的解决方案是将Context字段添加到Brick类,然后使用Getter / SetterContextMainActivity中设置OnCreate字段。然后,您要使用该Context字段构造MediaPlayer。

例:

package gal.doron.ballinthehole;

import android.media.MediaPlayer;
Context context;
public class Bricks

{
Brick[][] bricks;
public Bricks(int rows, int cols, float brickW, float brickH)
{
bricks = new Brick[rows][cols];
float x=0,y=0;
for(int i=0;i<rows;i++,y+=brickH)
{
x=0;
for(int j=0;j<cols;j++,x+=brickW)
{
bricks[i][j] = new Brick(x, y, brickW, brickH, 1);
}
}
}

public boolean isHitAll()
{
for(int i=0;i<rows();i++)
{
for(int j=0;j<cols();j++)
{
if(bricks[i][j].getType()!=0 && bricks[i][j].getType()!=4)
return false;
}
}
MediaPlayer mp = MediaPlayer.create(context, R.raw.hopa);
mp.start();
return true;
}

public void setContext(Context context){
this.context = context;
}
public Context getContext(Context context){
return this.context;
}

}

在你的 MainActivity
  protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Brick.setContext(getContext());
}

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

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