166f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet/*
266f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet * Copyright (C) 2009 The Android Open Source Project
366f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet *
466f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet * Licensed under the Apache License, Version 2.0 (the "License");
566f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet * you may not use this file except in compliance with the License.
666f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet * You may obtain a copy of the License at
766f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet *
866f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet *      http://www.apache.org/licenses/LICENSE-2.0
966f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet *
1066f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet * Unless required by applicable law or agreed to in writing, software
1166f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet * distributed under the License is distributed on an "AS IS" BASIS,
1266f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1366f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet * See the License for the specific language governing permissions and
1466f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet * limitations under the License.
1566f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet */
1666f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet
1752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectpackage com.example.android.apis.media;
1852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
1952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectimport android.app.Activity;
2052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectimport android.media.MediaPlayer;
2152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectimport android.os.Bundle;
2252d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectimport android.util.Log;
2352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectimport android.widget.TextView;
2452d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectimport android.widget.Toast;
2552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
2652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectimport com.example.android.apis.R;
2752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
2852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Projectpublic class MediaPlayerDemo_Audio extends Activity {
2952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
3052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    private static final String TAG = "MediaPlayerDemo";
3152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    private MediaPlayer mMediaPlayer;
3252d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    private static final String MEDIA = "media";
3352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    private static final int LOCAL_AUDIO = 1;
3452d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    private static final int STREAM_AUDIO = 2;
3552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    private static final int RESOURCES_AUDIO = 3;
3652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    private static final int LOCAL_VIDEO = 4;
3752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    private static final int STREAM_VIDEO = 5;
3852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    private String path;
3952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
4052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    private TextView tx;
4152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
4266f17e50dbb42bc529dd12b2f26729f114b1a1a9Xavier Ducrohet    @Override
4352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    public void onCreate(Bundle icicle) {
4452d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        super.onCreate(icicle);
4552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        tx = new TextView(this);
4652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        setContentView(tx);
4752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        Bundle extras = getIntent().getExtras();
4852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        playAudio(extras.getInt(MEDIA));
4952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    }
5052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
5152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    private void playAudio(Integer media) {
5252d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        try {
5352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project            switch (media) {
5452d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                case LOCAL_AUDIO:
5552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    /**
5652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                     * TODO: Set the path variable to a local audio file path.
5752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                     */
5852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    path = "";
5952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    if (path == "") {
6052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                        // Tell the user to provide an audio file URL.
6152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                        Toast
6252d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                                .makeText(
6352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                                        MediaPlayerDemo_Audio.this,
6452d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                                        "Please edit MediaPlayer_Audio Activity, "
6552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                                                + "and set the path variable to your audio file path."
6652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                                                + " Your audio file must be stored on sdcard.",
6752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                                        Toast.LENGTH_LONG).show();
6852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
6952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    }
7052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    mMediaPlayer = new MediaPlayer();
7152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    mMediaPlayer.setDataSource(path);
7252d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    mMediaPlayer.prepare();
7352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    mMediaPlayer.start();
7452d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    break;
7552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                case RESOURCES_AUDIO:
7652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    /**
7752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                     * TODO: Upload a audio file to res/raw folder and provide
7852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                     * its resid in MediaPlayer.create() method.
7952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                     */
8052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    mMediaPlayer = MediaPlayer.create(this, R.raw.test_cbr);
8152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project                    mMediaPlayer.start();
8252d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
8352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project            }
8452d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project            tx.setText("Playing audio...");
8552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
8652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        } catch (Exception e) {
8752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project            Log.e(TAG, "error: " + e.getMessage(), e);
8852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        }
8952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
9052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    }
9152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
9252d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    @Override
9352d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    protected void onDestroy() {
9452d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        super.onDestroy();
9552d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        // TODO Auto-generated method stub
9652d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        if (mMediaPlayer != null) {
9752d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project            mMediaPlayer.release();
9852d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project            mMediaPlayer = null;
9952d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project        }
10052d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project
10152d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project    }
10252d4c30ca52320ec92d1d1ddc8db3f07f69c4f98The Android Open Source Project}
103