播放音频文件

时间:2011-05-20 09:55:34

标签: android media-player

我在以下路径/ sdcard / media中的sdcard中有3个音频文件。我正在使用以下代码一个接一个地播放该文件。有什么建议 mPlay.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub


                Log.d("Before resume","");
            mPlayer = new MediaPlayer();

                File dir = new File("/sdcard/media");

                String[] children = dir.list();
                if (children == null) {
                    // Either dir does not exist or is not a directory
                    Context context = getApplicationContext();
                    CharSequence text1 = "No media file";
                    int duration = Toast.LENGTH_SHORT;
                    Toast toast1 = Toast.makeText(context, text1, duration);
                    toast1.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
                    toast1.show();
                } else {

                    for (int i=0; i<children.length; i++) {
                        // Get filename of file or directory
                        String mFileName = children[i];
                        try {
                            mPlayer.setDataSource(mFileName);
                        } catch (IllegalArgumentException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IllegalStateException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        try {
                            mPlayer.prepare();
                        } catch (IllegalStateException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        mPlayer.start();
                        mSeekBar.setMax(mPlayer.getDuration());
                        new Thread(new Runnable() {

                            @Override
                            public void run() {
                                // TODO Auto-generated method stub
                                while (mPlayer != null
                                        && mPlayer.getCurrentPosition() < mPlayer
                                                .getDuration()) {
                                    Log.d("Indide Run Method", Integer.toString(mPlayer
                                            .getCurrentPosition()));
                                    try {
                                        Thread.sleep(100);
                                    } catch (InterruptedException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                    mSeekBar.setProgress(mPlayer.getCurrentPosition());
                                }

                                // start.setText(mPlayer.getCurrentPosition());
                            }

                        }).start();
                        mSeekBar.setProgress(mPlayer.getCurrentPosition());
                        pauseRecord.setVisibility(View.INVISIBLE);
                        mResume.setVisibility(View.VISIBLE);
                        }                                       
            } 
        }

    });

我有以下错误

05-20 15:20:04.851: ERROR/PlayerDriver(1099): Command PLAYER_SET_DATA_SOURCE completed with an error or info PVMFErrNotSupported
05-20 15:20:04.851: WARN/PlayerDriver(1099): PVMFInfoErrorHandlingComplete
05-20 15:20:04.851: WARN/MediaPlayer(3164): info/warning (1, 26)
05-20 15:20:04.851: ERROR/MediaPlayer(3164): error (1, -4)
05-20 15:20:04.851: WARN/System.err(3164): java.io.IOException: Prepare failed.: status=0x1
05-20 15:20:04.851: WARN/System.err(3164):     at android.media.MediaPlayer.prepare(Native Method)
05-20 15:20:04.851: WARN/System.err(3164):     at com.fsp.ResumeRecordTest.ResumeRecordTest$1.onClick(ResumeRecordTest.java:154)
05-20 15:20:04.851: WARN/System.err(3164):     at android.view.View.performClick(View.java:2397)
05-20 15:20:04.851: WARN/System.err(3164):     at android.view.View.onTouchEvent(View.java:4212)

1 个答案:

答案 0 :(得分:0)