android中的“停止并播放”单选按钮

android中的“停止并播放”单选按钮,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

我在原始文件夹中有2个mp3文件。我试图在单选按钮中显示音频文件。如果单击单选按钮,我想播放音频。如果选择其他单选按钮,旧音频应停止,新音频应播放。这是我的代码。在我的代码中,音频正在播放,但当我选择其他音频应用时,将退出

提前谢谢 options.xml

<?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)