gpt4 book ai didi

android - 在 Android 中单击按钮时播放声音

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

我是 Android 的新手,我正在尝试做一些简单的事情,例如在单击按钮时播放自定义 MP3。这似乎是一个 fairly common question ,但即使我的代码遵循示例,并且我没有收到任何错误,但我在模拟器或真实手机中都听不到任何声音。

我的 MainActivity.java:

public class MainActivity extends Activity {

private static final String TAG = "MyActivity";

public void MyActivity(Bundle onSavedStateInstance) {
Log.v(TAG, "Initializing sounds...");

final MediaPlayer mp = MediaPlayer.create(this, R.raw.alarma_67560);

Button play_button = (Button)this.findViewById(R.id.play_button);
play_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.v(TAG, "Playing sound...");
mp.start();
}
});
Log.v(TAG, "Sounds initialized.");
}

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

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

}

还有我的 activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />

<Button
android:id="@+id/play_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/play_button" />

</RelativeLayout>

我正在使用 Eclipse 插件进行开发,它没有显示任何错误并且似乎可以在模拟器或真实手机中正确运行应用程序,但是当我单击播放按钮时,没有任何反应。我不确定模拟器是否支持声音(但我假设它支持)并且我已经确认我的手机上的声音未静音。

我做错了什么?

此外,我没有在 Eclipse 的控制台或 LogCat 面板中的任何地方看到我的日志记录语句。我应该在某处看到那些打印的吗?

最佳答案

这行不通的原因很简单:MyActivity() 从未被调用。

Android 将调用您的 Activity 的 onCreate(),但任何其他方法调用必须由您完成。因为您从不调用 MyActivity() 方法,所以按钮永远不会被赋予 onClickListener(),并且声音也永远不会播放。请尝试使用以下代码:

public class MainActivity extends Activity {

private static final String TAG = "MyActivity";

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

Log.v(TAG, "Initializing sounds...");

final MediaPlayer mp = MediaPlayer.create(this, R.raw.alarma_67560);

Button play_button = (Button)this.findViewById(R.id.play_button);
play_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.v(TAG, "Playing sound...");
mp.start();
}
});
Log.v(TAG, "Sounds initialized.");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

}

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

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