Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 单击文本视图即可从原始资源播放mp3文件_Android_Mp3_Listener_Media Player - Fatal编程技术网

Android 单击文本视图即可从原始资源播放mp3文件

Android 单击文本视图即可从原始资源播放mp3文件,android,mp3,listener,media-player,Android,Mp3,Listener,Media Player,我想在单击文本时播放某个mp3文件。例如,我点击“Nicholas”一词,应用程序必须播放Nicholas.mp3 对不起,我的代码太乱了,我是android开发者的新手: package com.example.playword; import java.io.IOException; import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; //import andro

我想在单击文本时播放某个mp3文件。例如,我点击“Nicholas”一词,应用程序必须播放Nicholas.mp3

对不起,我的代码太乱了,我是android开发者的新手:

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);
        
    }
}

当我运行这个时,我得到一个强制关闭错误。您对此有更好的想法吗?

您需要将上下文实例传递到方法:


另外,在
create()
调用之后,prepare已经执行,因此您不需要显式执行它,只需在
create()
之后立即调用
start()
,当您创建
mPlayer
对象时,您应该将上下文传递给它,这是您的游戏词

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

您可以使用isplay()方法了解音乐播放与否

请避免只给出代码答案。试着解释一下你的代码是如何解决OP的问题的。如果你能提供一些背景和说明,这对每个人都更有帮助,尤其是那些经验比你少的人。只是补充一下,还要尝试实现AudioFocus
MediaPlayer mPlayer = MediaPlayer.create(FakeCallScreen.this, R.raw.mysoundfile);
    mPlayer.start();
val mediaPlayer = MediaPlayer.create(this,R.raw.music)
    mediaPlayer.isLooping=true
    mediaPlayer.start()
    music_on_off_button.setOnClickListener {
        if (mediaPlayer.isPlaying){
            mediaPlayer.pause()
        }else{
            mediaPlayer.start()
        }
    }