Android! Разработка мобильных


Audio/src/org/example/audio/Audio.java



Pdf көрінісі
бет64/87
Дата26.01.2023
өлшемі3,48 Mb.
#63133
1   ...   60   61   62   63   64   65   66   67   ...   87
 Audio/src/org/example/audio/Audio.java
package org.example.audio;
import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;


98 Глава 5 • Мультимедиа
import android.os.Bundle;
import android.view.KeyEvent;
public class Audio extends Activity {
private MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
}
}
Метод 
setVolumeControlStream()
�ооб�ает �������� что ко�да пол�зовател� нажи�
�������� что ко�да пол�зовател� нажи�
� что ко�да пол�зовател� нажи�
�ает клавиши для увеличения или у�ен�шения �ро�ко�ти во вре�я выполнения 
приложения� оно должно из�енят� �ро�ко�т� �узыки или дру�их �едиа�атериалов� 
в�е�то то�о чтобы из�енят� �ро�ко�т� звонка�
Далее� на� нужно перехватит� нажатие клавиш и прои�рат� подходя�ие звуки� 
Мы �делае� �то� переопределив �етод 
Activity .onKeyDown()

Рис . 5 .2 . Копирование аудиофайлов в папку res/raw вашего проекта
 Audio/src/org/example/audio/Audio.java
1 @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {


5 .1 . Проигрывание аудио 99
- int resId;
- switch (keyCode) {
5 case KeyEvent.KEYCODE_DPAD_UP:
- resId = R.raw.up;
- break;
- case KeyEvent.KEYCODE_DPAD_DOWN:
- resId = R.raw.down;
10 break;
- case KeyEvent.KEYCODE_DPAD_LEFT:
- resId = R.raw.left;
- break;
- case KeyEvent.KEYCODE_DPAD_RIGHT:
15 resId = R.raw.right;
- break;
- case KeyEvent.KEYCODE_DPAD_CENTER:
- case KeyEvent.KEYCODE_ENTER:
- resId = R.raw.enter;
20 break;
- case KeyEvent.KEYCODE_A:
- resId = R.raw.a;
- break;
- case KeyEvent.KEYCODE_S:
25 resId = R.raw.s;
- break;
- case KeyEvent.KEYCODE_D:
- resId = R.raw.d;
- break;
30 case KeyEvent.KEYCODE_F:
- resId = R.raw.f;
- break;
- default:
- return super.onKeyDown(keyCode, event);
35 }
-
- // Высвобождение ресурсов от предыдущих вызовов MediaPlayer
- if (mp != null) {
- mp.release();
40 }
-
- // Создание нового объекта MediaPlayer для проигрывания этого звука
- mp = MediaPlayer.create(this, resId);
- mp.start();
45
- // Указание того, что нажатие данной клавиши было обработано
- return true;
- }
Первая ча�т� кода �етода зани�ает�я выборо� ре�ур�а в зави�и�о�ти от то�о� 
какая клавиша была нажата� Зате�� в �троке 39 �ы и�пол�зуе� �етод 
release()
� 
чтобы о�тановит� л�бые звуки� которые уже прои�рыва�т�я� и о�вободит� л�бые 


100 Глава 5 • Мультимедиа
ре�ур�ы� �вязанные �о �тары� �кзе�пляро� 
MediaPlayer
� Е�ли вы забыли �делат� 
�то� про�ра��а завершит�я � ошибкой (��отрите врезку)�
В �троке 43 �ы и�пол�зуе� �етод 
create()
� чтобы �оздат� новый �кзе�пляр 
MediaPlayer
� и�пол�зуя выбранный звуковой ре�ур�� и вызывае� �етод 
start()
� что�
бы начат� е�о прои�рыват�� Метод 
start()
а�инхронен� он возвра�ает управление 
не�едленно� незави�и�о от то�о� как дол�о длит�я звук� Вы �ожете и�пол�зоват� 
�етод 
setOnCompletionListener()
� чтобы узнат�� ко�да завершит�я прои�рывание клипа�


Достарыңызбен бөлісу:
1   ...   60   61   62   63   64   65   66   67   ...   87




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет