Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
Java 添加MediaPlayer正在使我的应用程序崩溃-无法输出声音_Java_Android_Android Studio_Media Player - Fatal编程技术网

Java 添加MediaPlayer正在使我的应用程序崩溃-无法输出声音

Java 添加MediaPlayer正在使我的应用程序崩溃-无法输出声音,java,android,android-studio,media-player,Java,Android,Android Studio,Media Player,我目前正在编写一个android应用程序,这是我做的第一个。所以我是android studio的新手。看看这里和网上的其他帖子。我正试图从中获得声音输出。我添加了MediaPlayer并将声音文件放入/res/raw,但是当我试图运行我的应用程序时,它崩溃了 package com.example.myfirstapp; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Handler;

我目前正在编写一个android应用程序,这是我做的第一个。所以我是android studio的新手。看看这里和网上的其他帖子。我正试图从中获得声音输出。我添加了MediaPlayer并将声音文件放入/res/raw,但是当我试图运行我的应用程序时,它崩溃了

package com.example.myfirstapp;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.ActionBarActivity;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import net.objecthunter.exp4j.Expression;
import net.objecthunter.exp4j.ExpressionBuilder;

import static com.example.myfirstapp.R.id.fourfivesix;
import static com.example.myfirstapp.R.id.operators;

//import net.objecthunter.exp4j.Expression;
//import net.objecthunter.exp4j.ExpressionBuilder;

public class MainActivity extends ActionBarActivity  {
    private int[] operatorButtons = {operators};
    private int[] numericButtons = {R.id.onetwothree, fourfivesix, R.id.seveneightninezero};
    private boolean  lastNumeric, stateError;
    private TextView txtScreen;
    private static final int TAP_TIMEOUT = 400;
    MediaPlayer one = MediaPlayer.create(this, R.raw.one);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Find the TextView
        this.txtScreen = (TextView) findViewById(R.id.txtScreen);
        // Find and set OnClickListener to numeric buttons
//        setNumericOnClickListener();
        // Find and set OnClickListener to operator buttons, equal button and decimal point button
//        setOperatorOnClickListener();

        Button onetwothree = (Button) findViewById(R.id.onetwothree);
        onetwothree.setOnTouchListener(new View.OnTouchListener() {

            Handler handler = new Handler();

            int numberOfTaps = 0;
            long lastTapTimeMs = 0;
            long touchDownMs = 0;

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        touchDownMs = System.currentTimeMillis();
                        break;
                    case MotionEvent.ACTION_UP:
                        handler.removeCallbacksAndMessages(null);
                        if ((System.currentTimeMillis() - touchDownMs) >  1000) {
                            //it was not a tap

                            numberOfTaps = 0;
                            lastTapTimeMs = 0;
                            break;
                        }

                        if (numberOfTaps > 0
                                && (System.currentTimeMillis() - lastTapTimeMs) <  1000) {
                            numberOfTaps += 1;
                        } else {
                            numberOfTaps = 1;
                        }
                        lastTapTimeMs = System.currentTimeMillis();

                        if (numberOfTaps == 1) {
                            handler.postDelayed(new Runnable() {

                                @Override
                                public void run() {
                                    if (txtScreen.getText().toString() == "") {
                                        txtScreen.setText("1");
                                        one.start();
                                    } else txtScreen.append("1");
                                }
                            }, 1000);



                        }else if (numberOfTaps == 2) {
                            handler.postDelayed(new Runnable() {
                                @Override
                                public void run() {
                                    if (txtScreen.getText().toString() == "") {
                                        txtScreen.setText("2");
                                    } else txtScreen.append("2");
                                }
                            }, 1000);

                        } else if (numberOfTaps == 3) {
                            if (txtScreen.getText().toString() == "") {
                                txtScreen.setText("3");
                            } else txtScreen.append("3");
                        }
                }

                return false;
            }
        });
package com.example.myfirstapp;
导入android.media.MediaPlayer;
导入android.os.Bundle;
导入android.os.Handler;
导入android.support.v7.app.ActionBarActivity;
导入android.view.MotionEvent;
导入android.view.view;
导入android.widget.Button;
导入android.widget.TextView;
导入net.objecthunter.exp4j.Expression;
导入net.objecthunter.exp4j.ExpressionBuilder;
导入静态com.example.myfirstapp.R.id.fourfivesix;
导入静态com.example.myfirstapp.R.id.operators;
//导入net.objecthunter.exp4j.Expression;
//导入net.objecthunter.exp4j.ExpressionBuilder;
公共类MainActivity扩展了ActionBarActivity{
私有int[]运算符按钮={operators};
private int[]numericButtons={R.id.onetwotree,fourfivesix,R.id.seveneightninezero};
私有布尔lastNumeric,stateError;
私有文本视图txtScreen;
专用静态最终整数抽头超时=400;
MediaPlayer one=MediaPlayer.create(this,R.raw.one);
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//查找文本视图
this.txtScreen=(TextView)findViewById(R.id.txtScreen);
//查找并将OnClickListener设置为数字按钮
//setNumericOnClickListener();
//查找并设置OnClickListener到运算符按钮、相等按钮和小数点按钮
//setOperatorOnClickListener();
按钮onetwother=(按钮)findViewById(R.id.onetwother);
setOnTouchListener(新视图.OnTouchListener()){
Handler=newhandler();
int numberOfTaps=0;
长lastTapTimeMs=0;
长接地毫秒=0;
@凌驾
公共布尔onTouch(视图v,运动事件){
开关(event.getAction()){
case MotionEvent.ACTION\u DOWN:
touchtownms=System.currentTimeMillis();
打破
case MotionEvent.ACTION\u UP:
handler.removeCallbacksAndMessages(null);
如果((System.currentTimeMillis()-touchDownMs)>1000){
//那不是水龙头
点击次数=0;
lastTapTimeMs=0;
打破
}
如果(点击次数>0
&&(System.currentTimeMillis()-lastTapTimeMs)<1000){
抽头数+=1;
}否则{
抽头数=1;
}
lastTapTimeMs=System.currentTimeMillis();
if(numberOfTaps==1){
handler.postDelayed(新的Runnable(){
@凌驾
公开募捐{
if(txtScreen.getText().toString()=“”){
txtScreen.setText(“1”);
一、启动();
}else txtScreen.append(“1”);
}
}, 1000);
}else if(numberOfTaps==2){
handler.postDelayed(新的Runnable(){
@凌驾
公开募捐{
if(txtScreen.getText().toString()=“”){
txtScreen.setText(“2”);
}else txtScreen.append(“2”);
}
}, 1000);
}else if(numberOfTaps==3){
if(txtScreen.getText().toString()=“”){
txtScreen.setText(“3”);
}else txtScreen.append(“3”);
}
}
返回false;
}
});
以上是我代码的相关部分。我正在创建名为顶部的媒体播放器,然后在需要使用
one.start()
时尝试调用它。是否需要在代码中添加其他内容才能使其正常工作

添加MediaPlayer代码之前,我的应用程序运行正常。

请尝试以下操作:

在onCreate()内部调用MediaPlayer.create()


这里有一个很好的

你可以添加日志猫吗..!嗨,日志猫没有显示任何东西,我在模拟器上看到的只是一条消息,说我的应用程序已经停止。我需要在我的代码中添加任何东西来显示日志猫的显示信息吗?效果很好!感谢各位老朋友一直关注这一点。
public class MainActivity extends ActionBarActivity  {

MediaPlayer one;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        one = MediaPlayer.create(this, R.raw.one);