android中的“停止并播放”单选按钮
我在原始文件夹中有2个mp3文件。我试图在单选按钮中显示音频文件。如果单击单选按钮,我想播放音频。如果选择其他单选按钮,旧音频应停止,新音频应播放。这是我的代码。在我的代码中,音频正在播放,但当我选择其他音频应用时,将退出 提前谢谢 options.xmlandroid中的“停止并播放”单选按钮,android,radio-button,Android,Radio Button,我在原始文件夹中有2个mp3文件。我试图在单选按钮中显示音频文件。如果单击单选按钮,我想播放音频。如果选择其他单选按钮,旧音频应停止,新音频应播放。这是我的代码。在我的代码中,音频正在播放,但当我选择其他音频应用时,将退出 提前谢谢 options.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="17dp"
android:layout_marginTop="10dp"
android:text="Add Background" />
<RadioButton
android:id="@+id/music1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/radioButton1"
android:layout_below="@+id/radioButton1"
android:layout_marginLeft="52dp"
android:layout_marginTop="28dp"
android:text="Music1"
android:visibility="gone" />
<RadioButton
android:id="@+id/music2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/music1"
android:layout_below="@+id/radioButton1"
android:layout_marginLeft="52dp"
android:text="Music2"
android:visibility="gone" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/radioButton1"
android:layout_below="@+id/music1"
android:layout_marginLeft="17dp"
android:layout_marginTop="16dp"
android:text="Self Speach" />
</RadioGroup>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/radioGroup1"
android:layout_centerHorizontal="true"
android:layout_marginTop="47dp"
android:text="Button" />
这是我的错误日志
06-05 12:44:31.060: E/AndroidRuntime(9561): FATAL EXCEPTION: main
06-05 12:44:31.060: E/AndroidRuntime(9561): Process: com.example.videoapp, PID: 9561
06-05 12:44:31.060: E/AndroidRuntime(9561): java.lang.IllegalStateException
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.media.MediaPlayer._getAudioStreamType(Native Method)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.media.MediaPlayer.getAudioStreamType(MediaPlayer.java:1363)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.media.MediaPlayer.isRestricted(MediaPlayer.java:1347)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.media.MediaPlayer.start(MediaPlayer.java:1336)
06-05 12:44:31.060: E/AndroidRuntime(9561): at com.example.videoapp.OptionActivity$1.onClick(OptionActivity.java:89)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.view.View.performClick(View.java:5181)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.widget.CompoundButton.performClick(CompoundButton.java:128)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.view.View$PerformClick.run(View.java:20887)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.os.Handler.handleCallback(Handler.java:739)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.os.Handler.dispatchMessage(Handler.java:95)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.os.Looper.loop(Looper.java:145)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.app.ActivityThread.main(ActivityThread.java:5942)
06-05 12:44:31.060: E/AndroidRuntime(9561): at java.lang.reflect.Method.invoke(Native Method)
06-05 12:44:31.060: E/AndroidRuntime(9561): at java.lang.reflect.Method.invoke(Method.java:372)
06-05 12:44:31.060: E/AndroidRuntime(9561): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
06-05 12:44:31.060: E/AndroidRuntime(9561): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
您可以自定义单选按钮,使其在未选中时看起来像“停止”按钮,在选中时看起来像“播放”,并在按钮单击处理程序中处理功能。 您需要为此使用单选按钮组。 让我分享代码
谢谢你的回复。我也分享了我的xml代码。我无法理解你的布局。我不知道如何使用这些XML@VinodhKumar正如我分享的代码一样,在radio buton中设置android:background=“@drawable/radio_button”将radio_button.xml添加到drawable文件夹下作为共享。在它中,我们使用了2个自定义布局,用于压缩和正常state@VinodhKumar将选中的_state.xml和normal_state.xml添加到drawable文件夹中,并根据需要定义按钮在按下和正常状态下的布局。
06-05 12:44:31.060: E/AndroidRuntime(9561): FATAL EXCEPTION: main
06-05 12:44:31.060: E/AndroidRuntime(9561): Process: com.example.videoapp, PID: 9561
06-05 12:44:31.060: E/AndroidRuntime(9561): java.lang.IllegalStateException
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.media.MediaPlayer._getAudioStreamType(Native Method)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.media.MediaPlayer.getAudioStreamType(MediaPlayer.java:1363)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.media.MediaPlayer.isRestricted(MediaPlayer.java:1347)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.media.MediaPlayer.start(MediaPlayer.java:1336)
06-05 12:44:31.060: E/AndroidRuntime(9561): at com.example.videoapp.OptionActivity$1.onClick(OptionActivity.java:89)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.view.View.performClick(View.java:5181)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.widget.CompoundButton.performClick(CompoundButton.java:128)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.view.View$PerformClick.run(View.java:20887)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.os.Handler.handleCallback(Handler.java:739)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.os.Handler.dispatchMessage(Handler.java:95)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.os.Looper.loop(Looper.java:145)
06-05 12:44:31.060: E/AndroidRuntime(9561): at android.app.ActivityThread.main(ActivityThread.java:5942)
06-05 12:44:31.060: E/AndroidRuntime(9561): at java.lang.reflect.Method.invoke(Native Method)
06-05 12:44:31.060: E/AndroidRuntime(9561): at java.lang.reflect.Method.invoke(Method.java:372)
06-05 12:44:31.060: E/AndroidRuntime(9561): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
06-05 12:44:31.060: E/AndroidRuntime(9561): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)