Change Media Volume In Code?

All your problems with Audio, Video and Images.

Change Media Volume In Code?

Postby tahuy » Wed Oct 27, 2010 11:57 am

Hello Sirs,


Is there anyway to change the media volume in code?

I use MediaPlayer to play a stream audio and SetVolume to change volume but not success


Please help me on that. thanks very much

Here is the code:
Code: Select all
package ht.nct;

import java.io.IOException;

import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnBufferingUpdateListener;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.util.Log;
import android.widget.Toast;

public class Player {
   
   private static MediaPlayer thePlayer = new MediaPlayer();
   private static String urlSteam;
   private static Runnable startPlayer = null;
   private static Thread workingThread = null;
   private static PlayerView caller;
   private static float volume = 0.5f;
   
   public static void SetApp(Activity app)
   {
      caller = (PlayerView)app;
   }
   
   public static void SetStreamUrl(String url) {
      urlSteam = url;
   }
   
   public static int GetDuration()
   {
      try
      {
         return thePlayer.getDuration();
      }
      catch (Exception e) {
         Toast.makeText(caller, "Error in getDuration", Toast.LENGTH_SHORT).show();
         return -1;
      }

   }

   public static int GetCurPosition()
   {
      try {
         return thePlayer.getCurrentPosition();
      }
      catch (Exception e) {
         Toast.makeText(caller, "Error in getCurrentPosition", Toast.LENGTH_SHORT).show();
         return -1;
      }
      
   }
   
   public static MediaPlayer Instance()
   {
      return thePlayer;
   }
   
   public static void PlayerInitialize(String url) {
      if(url==null || url.length() < 1)
      {
         Log.v("package ht.nct.Player","Invalid Url");
         return;
      }
      urlSteam = url;

      Stop();
      
      if (startPlayer == null)
         startPlayer = new Runnable() {

            @Override
            public void run() {
               try {
                  if(thePlayer.isPlaying())
                     thePlayer.stop();
                  
                  thePlayer.reset();
                  thePlayer.setDataSource(urlSteam);
                  thePlayer.prepare();
                  thePlayer.setOnPreparedListener(new OnPreparedListener() {
                     
                     @Override
                     public void onPrepared(MediaPlayer arg0) {
                        // TODO Auto-generated method stub
                        
                     }
                  });
                  thePlayer.start();
                  caller.ShowProgress();
                  
                  thePlayer.setOnCompletionListener(new OnCompletionListener() {
                     
                     @Override
                     public void onCompletion(MediaPlayer arg0) {
                        
                        Log.v("Player","Play complete");
                     }
                  });
                  
                  thePlayer.setOnBufferingUpdateListener(new OnBufferingUpdateListener() {
                     
                     @Override
                     public void onBufferingUpdate(MediaPlayer arg0, int arg1) {
               
                     }
                  });
                  
               } catch (IOException e) {
                  Log.v("package ht.nct.Player", e.getMessage());
                  Toast.makeText(caller, "Error in initilize media player", Toast.LENGTH_SHORT).show();
               }

            }
         };

      if (workingThread != null)
         workingThread.stop();
      workingThread = new Thread(null, startPlayer,
            "ht.nct.Player.workingThread");
      workingThread.start();
   }

   public static boolean IsPlaying()
   {
      return thePlayer.isPlaying();
   }
   
   public static void Play() {
      try
      {
         if(!thePlayer.isPlaying() )
            thePlayer.start();
      }
      catch(Exception e)
      {
         Toast.makeText(caller, e.getMessage(), Toast.LENGTH_SHORT).show();
      }
   }

   public static void Stop() {
      try
      {
         if(thePlayer.isPlaying())
            thePlayer.stop();
      }
      catch(Exception e)
      {
         Toast.makeText(caller, e.getMessage(), Toast.LENGTH_SHORT).show();
      }
   }

   public static void Pause() {
      try
      {
         if(thePlayer.isPlaying())
            thePlayer.pause();
      }
      catch(Exception e)
      {
         Toast.makeText(caller, e.getMessage(), Toast.LENGTH_SHORT).show();
      }
   }
   
   public static void IncreaseVolume()
   {
      try
      {
         volume += 0.1f;
         thePlayer.setVolume(volume, volume);
      }
      catch(Exception e)
      {
         
      }
   }
   
   public static void DecreaseVolume()
   {
      try
      {
         volume -= 0.1f;
         thePlayer.setVolume(volume, volume);
      }
         
      catch(Exception e)
      {
         
      }
   }
   

}

tahuy
Freshman
Freshman
 
Posts: 8
Joined: Wed Apr 14, 2010 4:16 am

Top

Re: Change Media Volume In Code?

Postby tahuy » Mon Nov 01, 2010 6:08 am

Got the answer with following code

Code: Select all
AudioManager a=  (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
a.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, 1);


Thanks
tahuy
Freshman
Freshman
 
Posts: 8
Joined: Wed Apr 14, 2010 4:16 am

Top

Return to Multimedia Problems

Who is online

Users browsing this forum: No registered users and 14 guests