8

さて、私は音声録音の基本的な機能を実装しようとしています。

録音、再生/一時停止、停止

私はそれらすべてを行うことができますが、唯一の問題は、オーディオの再生が終了したときに通知を受け取る方法です。つまり、オーディオファイルを再生する場合、再生が終了したら、ファイルが停止したことを通知する必要があります。

これまで私は使用しました

   mPlayer.start() // to start the audio

   mPlayer.stop(); // to stop the audio

   mPlayer.pause(); //to pause the audio

オーディオファイルの再生が自動的に終了したら、どうすればわかるかを調べようとしています。

4

3 に答える 3

26

これを行うには、Media Player クラスの Completion Listener を使用できます。

mediaPlayer.setOnCompletionListener(new OnCompletionListener() {

            public void onCompletion(MediaPlayer mp) {

                Log.i("Completion Listener","Song Complete");
                Toast.makeText(context, "Media Completed", Toast.LENGTH_SHORT).show();
            }
        });
于 2012-05-10T07:27:11.020 に答える
5

このコードを使用してみてください

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:orientation="vertical"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       >
    <Button id="@+id/cmd_play"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="Play the music !!!"
       />
    </LinearLayout>

MusicPlayer アクティビティ コード

    public class MusicPlayer extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            setContentView(R.layout.main);

            // Find the Button from the xml-file.
            Button cmd_play = (Button)this.findViewById(R.id.cmd_play);
            cmd_play.setOnClickListener(new OnClickListener(){

                            @Override
                            public void onClick(View arg0) {
                                    MediaPlayer mp = MediaPlayer.create(MusicPlayer.this,
                                                    R.raw.everlast);
                                    mp.prepare();
                                    mp.start();
                                    // i.e. react on the end of the music-file:
                                    mp.setOnCompletionListener(new OnCompletionListener(){

                                            // @Override
                                            public void onCompletion(MediaPlayer arg0) {
                                                    // File has ended !!! 

Toast.makeText(context, "Media Completed with Success", Toast.LENGTH_SHORT).show();
                                            }
                                    });
                            }
            });
        }
    }

ファイルサウンドをアセットフォルダーに配置します

于 2012-05-10T07:36:58.113 に答える
2

mediaplayer クラスのsetOnCompletionListenerメソッドを使用します。そのメソッドの使用方法については、こちらを参照してください。

于 2012-05-10T07:27:58.603 に答える