0

我是 android 新手,我正在从事的项目需要它。我需要它通过单击按钮来播放声音。我按照在线教程进行操作,但我的代码根本不播放声音,并且在 MediaPlayer Error(-19,0) 上出现错误。我已经尝试了很多我在这里看到的修复,但我似乎无法让它工作。有什么帮助吗?这是代码

import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
    MediaPlayer player;

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

            AudioManager audioManager = (AudioManager)     getSystemService(MainActivity.AUDIO_SERVICE);
            audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0);

            Button buttonHello = (Button) findViewById(R.id.button1);
            buttonHello.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    MediaPlayer mp = Medi    aPlayer.create(MainActivity.this, R.raw.button);
                    mp.start();
                    mp.setOnCompletionListener(new OnCompletion    Listener() {
                        public void onCompletion(MediaPlayer mp) {
                            mp.release();

                        };
                    });
                }
            });
        } catch (Exception e) {
            System.out.println("Error!");
        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
4

1 回答 1

0

这个链接http://marakana.com/forums/android/examples/59.html有一个很好的例子来使用 MediaPlayer 类从原始文件夹播放歌曲。

要从内存中的文件播放歌曲,您可以使用以下代码。

 MediaPlayer mp = new MediaPlayer();
         mp.reset();
         ContentValues values = new ContentValues();                       
         values.put(MediaStore.Images.Media.DATA, filename.getAbsolutePath());
          Uri selectedImage=RingtoneDownload.this.getContentResolver().insert(
                          MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
                        try {
                            mp.setDataSource(RingtoneDownload.this,selectedImage);
                            mp.prepare();
                            mp.start();
                        }catch (Exception e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }

从文件设置源代码时,此代码对我有用。

于 2013-05-06T09:45:26.717 回答