0

我通过从一些应用程序中获取示例来编写代码。我在我的应用程序中添加了按钮来播放铃声。

我只想在用户单击设置图标时将代码设置为铃声。我的设置按钮 id 是 btn_setting1、btn_setting2、btn_setting3 等等

这是我的java代码

package com.techjapreet.shivshankarkiringtone;

import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class ringtone_tab extends AppCompatActivity {

    Button clk1;
    Button clk2;
    Button clk3;
    Button clk4;
    Button clk5;
    Button clk6;

    MediaPlayer mediaPlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ringtone_tab);


        clk6 = (Button) findViewById(R.id.btn_play6);

        clk5 = (Button) findViewById(R.id.btn_play5);

        clk4 = (Button) findViewById(R.id.btn_play4);

        clk3 = (Button) findViewById(R.id.btn_play3);

        clk2 = (Button) findViewById(R.id.btn_play2);

        clk1 = (Button) findViewById(R.id.btn_play1);

        mediaPlayer = new MediaPlayer();

    }


    public void setBtn_play6(View v)
    {
        stopPlayer();
        mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.shiv_vandana);
        mediaPlayer.start();

    }

    public void setBtn_play5(View v)
    {
        stopPlayer();
        mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.shiv_tandav_mantra);
        mediaPlayer.start();

    }



    public void setBtn_play4(View v)
    {
        stopPlayer();
        mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.shiv_shiv_om);
        mediaPlayer.start();

    }

    public void setBtn_play3(View v)
    {
        stopPlayer();
        mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.shiv_shiv);
        mediaPlayer.start();

    }



    public void setBtn_play2(View v)
    {
        stopPlayer();
        mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.shiv_aaradhna);
        mediaPlayer.start();


    }


    public void setBtn_play1(View v)
    {
        stopPlayer();
        mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.shiv_shankar);
        mediaPlayer.start();
    }

    private void stopPlayer(){
        if(mediaPlayer != null && mediaPlayer.isPlaying())
        {mediaPlayer.stop();
        mediaPlayer.reset();
        mediaPlayer.release();
        }
    }

}

这是我的 layout.xml 代码文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">


    <RelativeLayout
        android:id="@+id/RelativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:padding="5dp">

        <Button
            android:id="@+id/btn_play1"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginStart="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:background="@drawable/ic_play"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:onClick="setBtn_play1" />


        <Button
            android:id="@+id/btn_setting1"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_marginStart="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:layout_toStartOf="@+id/btn_play1"
            android:layout_toLeftOf="@+id/btn_play1"
            android:background="@drawable/ic_setting"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:src="@drawable/ic_setting" />

        <ImageView
            android:id="@+id/img_grid_item1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/txt_grid_item1"
            android:layout_alignBottom="@+id/txt_grid_item1"
            android:layout_alignParentStart="true"
            android:layout_alignParentLeft="true"
            android:contentDescription="@string/todo"
            android:gravity="center_vertical"
            android:src="@drawable/ic_logo"
            android:visibility="visible" />

        <TextView
            android:id="@+id/txt_grid_item1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_marginStart="2dp"
            android:layout_marginLeft="2dp"
            android:layout_marginTop="4dp"
            android:layout_marginEnd="4dp"
            android:layout_marginRight="4dp"
            android:layout_toStartOf="@+id/btn_setting1"
            android:layout_toLeftOf="@+id/btn_setting1"
            android:layout_toEndOf="@+id/img_grid_item1"
            android:layout_toRightOf="@+id/img_grid_item1"
            android:gravity="center_vertical"
            android:text="@string/textview"
            android:textColor="@color/colorPrimaryDark"
            android:textSize="30sp"
            android:textStyle="bold" />


    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/RelativeLayout2"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:padding="5dp">

        <Button
            android:id="@+id/btn_play2"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginStart="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:background="@drawable/ic_play"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:onClick="setBtn_play2"/>


        <Button
            android:id="@+id/btn_setting2"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_marginStart="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:layout_toStartOf="@+id/btn_play2"
            android:layout_toLeftOf="@+id/btn_play2"
            android:background="@drawable/ic_setting"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:src="@drawable/ic_setting" />

        <ImageView
            android:id="@+id/img_grid_item2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/txt_grid_item2"
            android:layout_alignBottom="@+id/txt_grid_item2"
            android:layout_alignParentStart="true"
            android:layout_alignParentLeft="true"
            android:contentDescription="@string/todo1"
            android:gravity="center_vertical"
            android:src="@drawable/ic_logo"
            android:visibility="visible" />

        <TextView
            android:id="@+id/txt_grid_item2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toStartOf="@+id/btn_setting2"
            android:layout_toLeftOf="@+id/btn_setting2"
            android:layout_toEndOf="@+id/img_grid_item2"
            android:layout_toRightOf="@+id/img_grid_item2"
            android:gravity="center_vertical"
            android:text="@string/textview1"
            android:textColor="@color/colorPrimaryDark"
            android:textSize="30sp"
            android:textStyle="bold" />


    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/RelativeLayout3"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:padding="5dp">

        <Button
            android:id="@+id/btn_play3"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginStart="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:background="@drawable/ic_play"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:onClick="setBtn_play3"/>


        <Button
            android:id="@+id/btn_setting3"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_marginStart="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:layout_toStartOf="@+id/btn_play3"
            android:layout_toLeftOf="@+id/btn_play3"
            android:background="@drawable/ic_setting"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:src="@drawable/ic_setting" />

        <ImageView
            android:id="@+id/img_grid_item3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/txt_grid_item3"
            android:layout_alignBottom="@+id/txt_grid_item3"
            android:layout_alignParentStart="true"
            android:layout_alignParentLeft="true"
            android:contentDescription="@string/todo2"
            android:gravity="center_vertical"
            android:src="@drawable/ic_logo"
            android:visibility="visible" />

        <TextView
            android:id="@+id/txt_grid_item3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toStartOf="@+id/btn_setting3"
            android:layout_toLeftOf="@+id/btn_setting3"
            android:layout_toEndOf="@+id/img_grid_item3"
            android:layout_toRightOf="@+id/img_grid_item3"
            android:gravity="center_vertical"
            android:text="@string/textview2"
            android:textColor="@color/colorPrimaryDark"
            android:textSize="30sp"
            android:textStyle="bold" />


    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/RelativeLayout4"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:padding="5dp">

        <Button
            android:id="@+id/btn_play4"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginStart="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:background="@drawable/ic_play"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:onClick="setBtn_play4"/>


        <Button
            android:id="@+id/btn_setting4"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_margin="5dp"
            android:layout_toStartOf="@+id/btn_play4"
            android:layout_toLeftOf="@+id/btn_play4"
            android:background="@drawable/ic_setting"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:src="@drawable/ic_setting" />

        <ImageView
            android:id="@+id/img_grid_item4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/txt_grid_item4"
            android:layout_alignBottom="@+id/txt_grid_item4"
            android:layout_alignParentStart="true"
            android:layout_alignParentLeft="true"
            android:contentDescription="@string/todo3"
            android:gravity="center_vertical"
            android:src="@drawable/ic_logo"
            android:visibility="visible" />

        <TextView
            android:id="@+id/txt_grid_item4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toStartOf="@+id/btn_setting4"
            android:layout_toLeftOf="@+id/btn_setting4"
            android:layout_toEndOf="@+id/img_grid_item4"
            android:layout_toRightOf="@+id/img_grid_item4"
            android:gravity="center_vertical"
            android:text="@string/textview3"
            android:textColor="@color/colorPrimaryDark"
            android:textSize="30sp"
            android:textStyle="bold" />


    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/RelativeLayout5"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:padding="5dp">

        <Button
            android:id="@+id/btn_play5"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginStart="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:background="@drawable/ic_play"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:onClick="setBtn_play5"/>


        <Button
            android:id="@+id/btn_setting5"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_margin="5dp"
            android:layout_toStartOf="@+id/btn_play5"
            android:layout_toLeftOf="@+id/btn_play5"
            android:background="@drawable/ic_setting"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:src="@drawable/ic_setting" />

        <ImageView
            android:id="@+id/img_grid_item5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/txt_grid_item5"
            android:layout_alignBottom="@+id/txt_grid_item5"
            android:layout_alignParentStart="true"
            android:layout_alignParentLeft="true"
            android:contentDescription="@string/todo4"
            android:gravity="center_vertical"
            android:src="@drawable/ic_logo"
            android:visibility="visible" />

        <TextView
            android:id="@+id/txt_grid_item5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toStartOf="@+id/btn_setting5"
            android:layout_toLeftOf="@+id/btn_setting5"
            android:layout_toEndOf="@+id/img_grid_item5"
            android:layout_toRightOf="@+id/img_grid_item5"
            android:gravity="center_vertical"
            android:text="@string/textview4"
            android:textColor="@color/colorPrimaryDark"
            android:textSize="30sp"
            android:textStyle="bold" />


    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/RelativeLayout6"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:padding="5dp">

        <Button
            android:id="@+id/btn_play6"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginStart="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:background="@drawable/ic_play"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:onClick="setBtn_play6"/>


        <Button
            android:id="@+id/btn_setting6"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_margin="5dp"
            android:layout_toStartOf="@+id/btn_play6"
            android:layout_toLeftOf="@+id/btn_play6"
            android:background="@drawable/ic_setting"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:src="@drawable/ic_setting" />

        <ImageView
            android:id="@+id/img_grid_item6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/txt_grid_item6"
            android:layout_alignBottom="@+id/txt_grid_item6"
            android:layout_alignParentStart="true"
            android:layout_alignParentLeft="true"
            android:contentDescription="@string/todo5"
            android:gravity="center_vertical"
            android:src="@drawable/ic_logo"
            android:visibility="visible" />

        <TextView
            android:id="@+id/txt_grid_item6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toStartOf="@+id/btn_setting6"
            android:layout_toLeftOf="@+id/btn_setting6"
            android:layout_toEndOf="@+id/img_grid_item6"
            android:layout_toRightOf="@+id/img_grid_item6"
            android:gravity="center_vertical"
            android:text="@string/textview5"
            android:textColor="@color/colorPrimaryDark"
            android:textSize="30sp"
            android:textStyle="bold" />


    </RelativeLayout>

</LinearLayout>
4

3 回答 3

0

首先使用以下代码将选定的铃声复制到设备中:-

 private void CopyAssets() {
    AssetManager assetManager = getAssets();
    String[] files = null;
    try {
        files = assetManager.list("Files");
    } catch (IOException e) {
        Log.e("tag", e.getMessage());
    }

    for(String filename : files) {
        System.out.println("File name => "+filename);
        InputStream in = null;
        OutputStream out = null;
        try {
          in = assetManager.open("Files/"+filename);   // if files resides inside the "Files" directory itself
          out = new FileOutputStream(Environment.getExternalStorageDirectory().toString() +"/" + filename);
          copyFile(in, out);
          in.close();
          in = null;
          out.flush();
          out.close();
          out = null;
        } catch(Exception e) {
            Log.e("tag", e.getMessage());
        }
    }
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
    byte[] buffer = new byte[1024];
    int read;
    while((read = in.read(buffer)) != -1){
      out.write(buffer, 0, read);
    }
}

使用以下代码复制设置铃声后: -

 ContentValues values = new ContentValues();
   values.put(MediaStore.MediaColumns.DATA, ringFile.getAbsolutePath());
   values.put(MediaStore.MediaColumns.TITLE, "ring");
   values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
   values.put(MediaStore.MediaColumns.SIZE, rindFile.length());
   values.put(MediaStore.Audio.Media.ARTIST, R.string.app_name);
   values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
   values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
   values.put(MediaStore.Audio.Media.IS_ALARM, true);
   values.put(MediaStore.Audio.Media.IS_MUSIC, false);

   Uri uri = MediaStore.Audio.Media.getContentUriForPath(ringFile.getAbsolutePath());
   Uri newUri = mCr.insert(uri, values);


   try {
       RingtoneManager.setActualDefaultRingtoneUri(getContext(), RingtoneManager.TYPE_RINGTONE, newUri);
   } catch (Throwable t) {

   }

其中 ringFile 是您的铃声文件路径。

于 2018-11-20T14:15:25.953 回答
0

在 onCreate 方法中定义媒体播放器,如下所示:

protected void onCreate(Bundle savedInstanceState){
Button clk1;
Button clk2;
Button clk3;
Button clk4;
Button clk5;
Button clk6;

MediaPlayer mediaPlayer;

也替换这个

mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.shiv_shiv_om); 有

mediaPlayer = MediaPlayer.create(this, R.raw.shiv_shiv_om);
于 2018-11-20T14:15:55.597 回答
0

您没有实现 onClickListener。那是实际按下按钮的时候。

  public void setBtn_play3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mediaPlayer = MediaPlayer.create(this,    
            R.raw.shiv_shiv);
            mediaPlayer.start();
        }
于 2018-11-20T14:33:04.367 回答