Intereting Posts
Android.content.ActivityNotFoundException: активности не найдено для обработки заставки Split Как поймать нажатие клавиши «Готово» с помощью мягкой клавиатуры Как интегрировать OpenCV в проект Android Qt Creator Удаление программных продуктов Android SMS Показать ошибку в конце редактирования текстового Android Загрузка большого файла в multipart с использованием OkHttp Ошибка раздувания класса поддержки Android Установите фактическое заполнение текста в TextView с составными чертежами Высота строки GridView Как использовать подготовленные инструкции в SQlite в Android? Всплывающее всплывающее окно доступа к устройству USB? Android: Как я могу помешать мягкой клавиатуре выдвинуть мой взгляд? Запуск Android Lint встретил … Сбой. java.lang.NullPointerException Я не понимаю, почему это ClassCastException происходит Предоставляет ли веб-браузер Android возможность загружать фотографии, только что снятые с камеры?

Android: Воспроизведение mp3-файла из необработанного ресурса при нажатии TextView

Привет, ребята, я хочу воспроизвести определенный mp3-файл при щелчке по тексту. Например, я нажал на слово «Николас», приложение должно играть nicholas.mp3 …

Извините за мой грязный код, я новичок в android dev:

package com.example.playword; import java.io.IOException; import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; //import android.os.Handler; import android.view.View; //import android.view.View.OnClickListener; //import android.widget.Button; import android.widget.TextView; public class PlayWord extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //final Handler mHandler = new Handler(); final TextView nicholas = (TextView) findViewById(R.id.nicholas); final TextView was = (TextView) findViewById(R.id.was); nicholas.setText("Nicholas "); was.setText("was "); /* Button btn = (Button) (findViewById(R.id.nicholasBtn)); btn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { nicholas.setText("Nicholas (Clicked!) "); } }); */ View.OnClickListener handler = new View.OnClickListener(){ public void onClick(View v) { switch (v.getId()) { case R.id.nicholas: // doStuff MediaPlayer mPlayer = MediaPlayer.create(null, R.raw.aaanicholas); try { mPlayer.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mPlayer.start(); nicholas.setText("Nicholas (Clicked!) "); break; case R.id.was: // doStuff MediaPlayer mPlayer1 = MediaPlayer.create(null, R.raw.aaawas); try { mPlayer1.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mPlayer1.start(); was.setText("was (Clicked!) "); break; } } }; findViewById(R.id.nicholas).setOnClickListener(handler); findViewById(R.id.was).setOnClickListener(handler); } } 

Когда я запускаю это, у меня возникает сильная ошибка. У вас есть гораздо лучшая идея? Спасибо заранее!

Solutions Collecting From Web of "Android: Воспроизведение mp3-файла из необработанного ресурса при нажатии TextView"

Вам нужно передать экземпляр контекста в метод MediaPlayer.create :

 MediaPlayer mPlayer = MediaPlayer.create(PlayWorld.this, R.raw.aaanicholas); 

Кроме того, после вызова create() подготовка уже выполняется, поэтому вам не нужно явно ее выполнять, просто вызовите start() сразу после create() .

Когда вы создаете объект mPlayer вы должны передать ему контекст, который находится в вашем случае PlayWord.this .

 MediaPlayer mPlayer = MediaPlayer.create(FakeCallScreen.this, R.raw.mysoundfile); mPlayer.start();