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