MediaPlayer无法正常运行(Android)?

用户名

我正在尝试在android中制作一个简单的音板。我几乎已经完成了最困难的部分,但是在完成应用程序之前,仍然需要解决一个问题。

我创建了一个嵌套的switch语句,通过该ID可以识别ImageView的ID(在该switch语句内)(让我们说“ case R.id.prank”),我告诉应用程序在按下ImageView时该怎么做,何时启动该操作以及何时启动行动失败了。

现在我在ImageViews或其他方面没有任何问题,我认为它与媒体播放器有关,但我不确定100%。基本上,当我按下第一个ImageView时,会出现第一声音和第二声音的情况。当我按下第二个按钮时,只会播放第二个声音。

我希望第一个ImageView播放第一个声音,第二个ImageView播放第二个声音。有人知道我在做什么错吗?

public class MainActivity extends AppCompatActivity implements OnTouchListener {
ImageView bmw_image;
ImageView prank;
MediaPlayer bmw_mp, prank_mp;
int bmw_id;
int prank_id;



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

    prank = (ImageView) findViewById(R.id.prank);
    bmw_image = (ImageView) findViewById(R.id.bmw_image);

    bmw_mp = MediaPlayer.create(this, R.raw.dikke_bmw_jongens_cut);
    prank_mp = MediaPlayer.create (this, R.raw.prank_cut);

    bmw_image.setOnTouchListener(this);
    prank.setOnTouchListener(this);
}

@Override
public boolean onTouch(View v, MotionEvent event) {
    switch (v.getId()) {
        case R.id.bmw_image:

            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN: {

                    bmw_mp.start();
                    ImageView view = (ImageView) v;

                    view.getDrawable().setColorFilter(0xff777777, PorterDuff.Mode.MULTIPLY);
                    view.invalidate();
                    break;
                }
                case MotionEvent.ACTION_UP:

                case MotionEvent.ACTION_CANCEL: {
                    ImageView view = (ImageView) v;
                    view.getDrawable().clearColorFilter();
                    view.invalidate();
                    break;
                }               
            }
                case R.id.prank:

                    switch (event.getAction()) {
                        case MotionEvent.ACTION_DOWN: {
                         prank_mp.start();
                            ImageView view = (ImageView) v;

                            //overlay is black with transparency of 0x77 (119)
                            view.getDrawable().setColorFilter(0xff777777, PorterDuff.Mode.MULTIPLY);
                            view.invalidate();
                            break;
                        }
                        case MotionEvent.ACTION_UP:

                        case MotionEvent.ACTION_CANCEL:
                        {
                            ImageView view = (ImageView) v;
                            view.getDrawable().clearColorFilter();
                            view.invalidate();
                            break;
                }
            }
            break;
    }

    return true;
    }
}
贝鲁兹

您忘记break为第一种情况写东西了,因此在第二声之后也会播放。

public class MainActivity extends AppCompatActivity implements View.OnTouchListener {
ImageView bmw_image;
ImageView prank;
MediaPlayer bmw_mp, prank_mp;
int bmw_id;
int prank_id;



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

    prank = (ImageView) findViewById(R.id.prank);
    bmw_image = (ImageView) findViewById(R.id.bmw_image);

    bmw_mp = MediaPlayer.create(this, R.raw.dikke_bmw_jongens_cut);
    prank_mp = MediaPlayer.create(this, R.raw.prank_cut);

    bmw_image.setOnTouchListener(this);
    prank.setOnTouchListener(this);
}

@Override
public boolean onTouch(View v, MotionEvent event) {
    switch (v.getId()) {
        case R.id.bmw_image: {

            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN: {

                    bmw_mp.start();
                    ImageView view = (ImageView) v;

                    view.getDrawable().setColorFilter(0xff777777, PorterDuff.Mode.MULTIPLY);
                    view.invalidate();
                    break;
                }
                case MotionEvent.ACTION_UP:

                case MotionEvent.ACTION_CANCEL: {
                    ImageView view = (ImageView) v;
                    view.getDrawable().clearColorFilter();
                    view.invalidate();
                    break;
                }
            }
            break;
        }
        case R.id.prank: {

            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN: {
                    prank_mp.start();
                    ImageView view = (ImageView) v;

                    //overlay is black with transparency of 0x77 (119)
                    view.getDrawable().setColorFilter(0xff777777, PorterDuff.Mode.MULTIPLY);
                    view.invalidate();
                    break;
                }
                case MotionEvent.ACTION_UP:

                case MotionEvent.ACTION_CANCEL: {
                    ImageView view = (ImageView) v;
                    view.getDrawable().clearColorFilter();
                    view.invalidate();
                    break;
                }
            }
            break;
        }
    }
    return true;
}
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android MediaPlayer seekBar 无法正常工作

来自分类Dev

Android Mediaplayer无法在Android 2.3上运行

来自分类Dev

MediaPlayer无法正常工作

来自分类Dev

Android bindString无法正常运行

来自分类Dev

onPostExecute无法运行,@ override无法正常运行android开发

来自分类Dev

附加视频无法正常运行-Android

来自分类Dev

android:windowSoftInputMode =“ adjustResize”无法正常运行

来自分类Dev

Android checkbox.isChecked()无法正常运行

来自分类Dev

YouTube Android API seekToMillis()无法正常运行

来自分类Dev

强标签无法正常运行Android Webview

来自分类Dev

drawCircle方法无法正常运行(Android)

来自分类Dev

Android if-else语句无法正常运行

来自分类Dev

多个警报无法正常运行Android

来自分类Dev

android 9补丁无法正常运行

来自分类Dev

Android Eclipse调试无法正常运行

来自分类Dev

Android每日通知无法正常运行

来自分类Dev

离子运行android无法正常工作

来自分类Dev

Android RecyclerView OnItemTouchListener无法正常运行

来自分类Dev

Android MediaPlayer无法SetDataSource()

来自分类Dev

Mediaplayer mp3无法正常工作

来自分类Dev

mediaPlayer.setSpu()无法正常工作

来自分类Dev

Android mediaPlayer无法正确发布

来自分类Dev

DIR无法正常运行

来自分类Dev

for循环无法正常运行?

来自分类Dev

OnLongClickListener无法正常运行

来自分类Dev

for循环无法正常运行

来自分类Dev

htaccess无法正常运行

来自分类Dev

Pygame无法正常运行

来自分类Dev

JavaScript无法正常运行