gpt4 book ai didi

java - 在 Android Studio 中播放声音的按钮不播放

转载 作者:行者123 更新时间:2023-11-29 04:49:58 28 4
gpt4 key购买 nike

我正在尝试制作一个播放声音的简单按钮,但在 (this, R.raw.shotgun) 上出现错误。我有 raw 文件夹和声音文件。我认为问题出在 this 但我不知道为什么。谢谢。

public class MainActivity extends AppCompatActivity {

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

Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MediaPlayer mp = MediaPlayer.create(this, R.raw.shotgun);
mp.start();
}
});
}
}

最佳答案

MediaPlayer.create 的第一个参数是一个Context。当您在 Activity 范围内工作时,MediaPlayer.create(this, R.raw.shotgun) 的用法有效,因为 Activity 扩展Context,因此 this 在这种情况下最终也是 Context

但是,您在 View.OnClickListener 范围内工作,并且 this 假定此类的值,而不是所需的 Context。要解决此问题,只需在 Activity 范围内将 Context 变量设置为 this

public class MainActivity extends AppCompatActivity {

private Button button;
Context context;

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

Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MediaPlayer mp = MediaPlayer.create(context, R.raw.shotgun);
mp.start();
}
});

关于java - 在 Android Studio 中播放声音的按钮不播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35823113/

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