0

私はアンドロイドが初めてで、取り組んでいるプロジェクトに必要です。ボタンをクリックしてサウンドを再生するために必要です。オンライン チュートリアルに従いましたが、コードでサウンドがまったく再生されず、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 クラスを使用して raw フォルダーから曲を再生する素晴らしい例があります。

メモリ内のファイルから曲を再生するには、次のコードを使用できます。

 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 に答える