Android - Trình quản lý âm thanh

Bạn có thể dễ dàng kiểm soát âm lượng nhạc chuông và cấu hình nhạc chuông của mình, tức là: (im lặng, rung, to, v.v.) trong Android. Android cung cấp lớp AudioManager cung cấp quyền truy cập vào các điều khiển này.

Để sử dụng lớp AndroidManager, trước tiên bạn phải tạo một đối tượng của lớp AudioManager bằng cách gọi getSystemService()phương pháp. Cú pháp của nó được đưa ra dưới đây.

private AudioManager myAudioManager;
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

Khi bạn khởi tạo đối tượng của lớp AudioManager, bạn có thể sử dụng setRingerModephương pháp để đặt cấu hình âm thanh hoặc nhạc chuông của thiết bị của bạn. Cú pháp của nó được đưa ra dưới đây.

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

Phương thức setRingerMode nhận một số nguyên làm tham số. Đối với mỗi chế độ, một số nguyên được gán sẽ phân biệt giữa các chế độ khác nhau. Các chế độ có thể là.

Sr.No Chế độ & Mô tả
1

RINGER_MODE_VIBRATE

Chế độ này đặt thiết bị ở chế độ rung.

2

RINGER_MODE_NORMAL

Chế độ này đặt thiết bị ở chế độ bình thường (to).

3

RINGER_MODE_SILENT

Chế độ này đặt thiết bị ở chế độ im lặng.

Khi bạn đã đặt chế độ, bạn có thể gọi getRingerMode()phương pháp lấy trạng thái xác lập của hệ thống. Cú pháp của nó được đưa ra dưới đây.

int mod = myAudioManager.getRingerMode();

Ngoài phương thức getRingerMode, có các phương thức khác có sẵn trong lớp AudioManager để điều khiển âm lượng và các chế độ khác. Chúng được liệt kê dưới đây.

Sr.No Phương pháp & mô tả
1

adjustVolume(int direction, int flags)

Phương pháp này điều chỉnh âm lượng của luồng phù hợp nhất

2

getMode()

Phương thức này trả về chế độ âm thanh hiện tại

3

getStreamMaxVolume(int streamType)

Phương thức này trả về chỉ số khối lượng tối đa cho một luồng cụ thể

4

getStreamVolume(int streamType)

Phương thức này trả về chỉ số khối lượng hiện tại cho một luồng cụ thể

5

isMusicActive()

Phương pháp này kiểm tra xem có bản nhạc nào đang hoạt động hay không.

6

startBluetoothSco()

Phương pháp này Bắt đầu kết nối âm thanh bluetooth SCO

7

stopBluetoothSco()

Phương pháp này dừng kết nối âm thanh bluetooth SCO.

Thí dụ

Ví dụ dưới đây minh họa việc sử dụng lớp AudioManager. Nó tạo ra một ứng dụng cho phép bạn đặt các chế độ chuông khác nhau cho thiết bị của mình.

Để thử nghiệm với ví dụ này, bạn cần chạy nó trên một thiết bị thực tế.

Các bước Sự miêu tả
1 Bạn sẽ sử dụng Android studio IDE để tạo ứng dụng Android theo gói com.example.sairamkrishna.myapplication.
2 Sửa đổi tệp src / MainActivity.java để thêm mã AudioManager
3 Sửa đổi tệp XML bố cục res / layout / activity_main.xml thêm bất kỳ thành phần GUI nào nếu cần.
4 Sửa đổi tệp res / values ​​/ string.xml và thêm các thành phần chuỗi cần thiết.
5 Sửa đổi AndroidManifest.xml để thêm các quyền cần thiết.
6 Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả.

Đây là nội dung của src/MainActivity.java

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.os.Bundle;
import android.view.View;

import android.widget.Button;
import android.widget.Toast;


public class MainActivity extends Activity {
   Button mode,ring,vibrate,silent;
   private AudioManager myAudioManager;

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

      vibrate=(Button)findViewById(R.id.button3);
      ring=(Button)findViewById(R.id.button2);

      mode=(Button)findViewById(R.id.button);
      silent=(Button)findViewById(R.id.button4);
      myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

      vibrate.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
            Toast.makeText(MainActivity.this,"Now in Vibrate Mode",
               Toast.LENGTH_LONG).show();
         }
      });

      ring.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            myAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
            Toast.makeText(MainActivity.this,"Now in Ringing Mode",
               Toast.LENGTH_LONG).show();
         }
      });

      silent.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
            Toast.makeText(MainActivity.this,"Now in silent Mode",
               Toast.LENGTH_LONG).show();
         }
      });

      mode.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            int mod=myAudioManager.getRingerMode();
            if(mod==AudioManager.RINGER_MODE_VIBRATE){
               Toast.makeText(MainActivity.this,"Now in Vibrate Mode",
                  Toast.LENGTH_LONG).show();
            } else if(mod==AudioManager.RINGER_MODE_NORMAL){
               Toast.makeText(MainActivity.this,"Now in Ringing Mode",
                  Toast.LENGTH_LONG).show();
            } else {
               Toast.makeText(MainActivity.this,"Now in Vibrate Mode",
                  Toast.LENGTH_LONG).show();
            }
         }
      });
   }
}

Đây là nội dung của activity_main.xml

Ở đây abc chỉ ra logo của điểm hướng dẫn
<?xml version="1.0" encoding="utf-8"?>
<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" 
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" 
   tools:context=".MainActivity">

   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Android Audio Recording"
      android:id="@+id/textView"
      android:textSize="30dp"
      android:layout_alignParentTop="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorialspoint"
      android:id="@+id/textView2"
      android:textColor="#ff3eff0f"
      android:textSize="35dp"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView2"
      android:layout_alignLeft="@+id/textView2"
      android:layout_alignStart="@+id/textView2"
      android:layout_alignRight="@+id/textView2"
      android:layout_alignEnd="@+id/textView2" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Mode"
      android:id="@+id/button"
      android:layout_below="@+id/imageView"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_marginTop="59dp" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Ring"
      android:id="@+id/button2"
      android:layout_alignTop="@+id/button"
      android:layout_centerHorizontal="true" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="vibrate"
      android:id="@+id/button3"
      android:layout_alignTop="@+id/button2"
      android:layout_alignRight="@+id/textView"
      android:layout_alignEnd="@+id/textView" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Silent"
      android:id="@+id/button4"
      android:layout_below="@+id/button2"
      android:layout_alignLeft="@+id/button2"
      android:layout_alignStart="@+id/button2" />     
</RelativeLayout>

Đây là nội dung của Strings.xml

<resources>
   <string name="app_name">My Application</string>
</resources>

Đây là nội dung của AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.sairamkrishna.myapplication"
         android:label="@string/app_name" >
      
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
      
   </application>
</manifest>

Hãy thử chạy ứng dụng của bạn. Tôi giả sử bạn đã kết nối thiết bị di động Android thực tế với máy tính của mình. Để chạy ứng dụng từ Android Studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào

biểu tượng Chạy từ thanh công cụ. Android studio sẽ hiển thị Hình ảnh

Bây giờ chọn nút im lặng, bạn sẽ nhận được biểu tượng im lặng trên thanh Thông báo

Bây giờ chỉ cần chọn nút chuông và sau đó nhấn nút chế độ hiện tại để xem trạng thái của nó đã được thiết lập hay chưa.

Bây giờ nhấn nút Rung, sau đó nhấn nút chế độ hiện tại để xem nó đã được thiết lập hay chưa. Nó sẽ hiển thị màn hình sau.