當前位置: 首頁>>代碼示例>>Java>>正文


Java SoundPool類代碼示例

本文整理匯總了Java中android.media.SoundPool的典型用法代碼示例。如果您正苦於以下問題:Java SoundPool類的具體用法?Java SoundPool怎麽用?Java SoundPool使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


SoundPool類屬於android.media包,在下文中一共展示了SoundPool類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: initializeSoundPool

import android.media.SoundPool; //導入依賴的package包/類
private void initializeSoundPool()
{
    if(sp!=null) {
        sp.release();
        sp=null;
    }
    try {
        sp=new SoundPool.Builder()
            .setMaxStreams(1)
            .build();
        soundId1=sp.load(context.getAssets().openFd("beats/default_bar.wav"), 1);
        soundId2=sp.load(context.getAssets().openFd("beats/default_beat.wav"), 1);
    } catch(IOException ioExc) {
        if(sp!=null) {
            sp.release();
            sp=null;
        }
    }
}
 
開發者ID:JosielSantos,項目名稱:android-metronome,代碼行數:20,代碼來源:Metronome.java

示例2: loadSounds

import android.media.SoundPool; //導入依賴的package包/類
protected void loadSounds()
{
    if (null != soundPool) {
        return;
    }

    this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
    AudioAttributes audioAttributes = new AudioAttributes.Builder()
            .setUsage(AudioAttributes.USAGE_GAME)
            .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
            .build();
    soundPool = new SoundPool.Builder()
            .setMaxStreams(clickers.length + 1)
            .setAudioAttributes(audioAttributes)
            .build();
    for (int i = 0; i < clickers.length; ++i) {
        clickers[i].clickSound = soundPool.load(this, clickers[i].soundId, 1);
    }

    failSound = soundPool.load(this, R.raw.fail, 1);
    successSound = soundPool.load(this, R.raw.success, 1);
}
 
開發者ID:assafnativ,項目名稱:Synesthesia,代碼行數:23,代碼來源:GameActivity.java

示例3: SoundEngine

import android.media.SoundPool; //導入依賴的package包/類
public SoundEngine(Context context) {
		this.context = context;

		sounds = new SoundPool(5, AudioManager.STREAM_RING, 0);

		soundsMap = new HashMap<Integer, Integer>();
		soundsMap.put(EATFOOD, sounds.load(context, R.raw.pacmon_waka_waka, 1));
		soundsMap.put(EATGHOST, sounds.load(context, R.raw.pacmon_eating_ghost, 1));
		soundsMap.put(DIE, sounds.load(context, R.raw.pacmon_dies, 1));
		soundsMap.put(READY, sounds.load(context, R.raw.pacmon_opening_song,1));
		soundsMap.put(GAMEOVER, sounds.load(context, R.raw.pacmon_opening_song, 1));
		//soundsMap.put(EATCHERRY, sounds.load(context, R.raw.pacmon_eating_cherry, 1));
		
		AudioManager mgr = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
		
	    // the music that is played at the beginning
//	    music = MediaPlayer.create(context, R.raw.gameplaymusic);
//	    music.setLooping(true);
	}
 
開發者ID:StringMon,項目名稱:homescreenarcade,代碼行數:20,代碼來源:SoundEngine.java

示例4: playSound

import android.media.SoundPool; //導入依賴的package包/類
public void playSound(@RawRes final int resId) {
    if (this.mSoundSourceMap != null) {
        if (this.mSoundSourceMap.containsKey(Integer.valueOf(resId))) {
            play(((Integer) this.mSoundSourceMap.get(Integer.valueOf(resId))).intValue());
            return;
        }
        this.mSoundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
            public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
                if (status == 0) {
                    MQSoundPoolManager.this.mSoundSourceMap.put(Integer.valueOf(resId),
                            Integer.valueOf(sampleId));
                    MQSoundPoolManager.this.play(sampleId);
                }
            }
        });
        this.mSoundPool.load(this.mContext.getApplicationContext(), resId, 1);
    }
}
 
開發者ID:JackChan1999,項目名稱:boohee_v5.6,代碼行數:19,代碼來源:MQSoundPoolManager.java

示例5: Sound

import android.media.SoundPool; //導入依賴的package包/類
public Sound(ComponentContainer container) {
  super(container.$form());
  thisComponent = this;
  soundPool = new SoundPool(MAX_STREAMS, AudioManager.STREAM_MUSIC, 0);
  soundMap = new HashMap<String, Integer>();
  vibe = (Vibrator) form.getSystemService(Context.VIBRATOR_SERVICE);
  sourcePath = "";
  loadComplete = true;  //nothing to wait for until we attempt to load
  form.registerForOnResume(this);
  form.registerForOnStop(this);
  form.registerForOnDestroy(this);

  // Make volume buttons control media, not ringer.
  form.setVolumeControlStream(AudioManager.STREAM_MUSIC);

  // Default property values
  MinimumInterval(500);

  if (waitForLoadToComplete) {
    new OnLoadHelper().setOnloadCompleteListener(soundPool);
  }
}
 
開發者ID:mit-cml,項目名稱:appinventor-extensions,代碼行數:23,代碼來源:Sound.java

示例6: registerWithPlayer

import android.media.SoundPool; //導入依賴的package包/類
public void registerWithPlayer(SoundPool player)
{
    try
    {
        if(fd != null)
        {
            soundId = player.load(fd, 1);
            fd.close();
        }
        else
        {
            soundId = player.load(res, 1);
        }
    }
    catch (IOException e)
    {
        Log.e("error loading audio files", e);
    }
}
 
開發者ID:hcmlab,項目名稱:ssj,代碼行數:20,代碼來源:AudioAction.java

示例7: loadSound

import android.media.SoundPool; //導入依賴的package包/類
public void loadSound(){
    soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
    try {
        //Create objects of the 2 required classes
        AssetManager assetManager = getAssets();
        AssetFileDescriptor descriptor;

        //create our three fx in memory ready for use
        descriptor = assetManager.openFd("sample1.ogg");
        sample1 = soundPool.load(descriptor, 0);

        descriptor = assetManager.openFd("sample4.ogg");
        sample4 = soundPool.load(descriptor, 0);


    } catch (IOException e) {
        //catch exceptions here
    }
}
 
開發者ID:PacktPublishing,項目名稱:Android-Game-Programming,代碼行數:20,代碼來源:GameActivity.java

示例8: FeedbackController

import android.media.SoundPool; //導入依賴的package包/類
/**
 * Constructs and initializes a new feedback controller.
 */
public FeedbackController(Context context) {
    mContext = context;
    mResources = context.getResources();
    mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
    mSoundPool = new SoundPool(NUMBER_OF_CHANNELS, DEFAULT_STREAM, 1);
    mSoundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
        @Override
        public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
            if (status == 0) {
                synchronized (mPostLoadPlayables) {
                    if (mPostLoadPlayables.contains(sampleId)) {
                        soundPool.play(
                                sampleId, DEFAULT_VOLUME, DEFAULT_VOLUME, 1, 0, DEFAULT_RATE);
                        mPostLoadPlayables.remove(Integer.valueOf(sampleId));
                    }
                }
            }
        }
    });
    mHandler = new Handler();

    mResourceIdToSoundMap.clear();
    mResourceIdToVibrationPatternMap.clear();
    MidiUtils.purgeMidiTempFiles(context);
}
 
開發者ID:google,項目名稱:brailleback,代碼行數:29,代碼來源:FeedbackController.java

示例9: SoundPoolPlayer

import android.media.SoundPool; //導入依賴的package包/類
private SoundPoolPlayer() {
  soundPool = new SoundPool(MAX_STREAMS, AudioManager.STREAM_MUSIC, SRC_QUALITY);
  final Handler handler = new Handler(Looper.getMainLooper());
  handler.postDelayed(new Runnable() {
    @Override
    public void run() {
      if (soundPool != null) {
        for (Integer soundId : soundResIdMap.values()) {
          soundPool.unload(soundId);
        }
        soundResIdMap.clear();
      }
      handler.postDelayed(this, RELEASE_RESOURCES_INTERVAL_MS);
    }
  }, RELEASE_RESOURCES_INTERVAL_MS);
}
 
開發者ID:XueyanLiu,項目名稱:miku,代碼行數:17,代碼來源:SoundPoolPlayer.java

示例10: soundPlay

import android.media.SoundPool; //導入依賴的package包/類
/**
 * 播放一個鈴聲
 *
 * @param context
 * @param resId   音樂資源ID
 */
public static void soundPlay(Context context, int resId) {
    if (playSound) {
        playCount = 0;
        replease();
        AudioManager am = (AudioManager) context
                .getSystemService(Context.AUDIO_SERVICE);// 實例化
        int audioMaxVolum = am.getStreamMaxVolume(AudioManager.STREAM_SYSTEM);// 音效最大值
        am.setStreamVolume(AudioManager.STREAM_SYSTEM, audioMaxVolum,
                AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
        float audioCurrentVolum = am
                .getStreamVolume(AudioManager.STREAM_SYSTEM);
        volumnRatio = audioCurrentVolum / audioMaxVolum;
        soundPool = new SoundPool(1, AudioManager.STREAM_SYSTEM, 0);
        soundid = soundPool.load(context, resId, 1);
        soundPool.setOnLoadCompleteListener(new LoadCompleteListener());

    }
}
 
開發者ID:baby2431,項目名稱:LemonUtils,代碼行數:25,代碼來源:SoundPoolUtil.java

示例11: getGesturePadFromArray

import android.media.SoundPool; //導入依賴的package包/類
private GesturePad getGesturePadFromArray(String soundPaths[],
                                          SoundPool soundPool,
                                          View buttonView,
                                          int color, int colorDef,
                                          Activity activity) {
    Sound sounds[] = new Sound[5];
    for (int i = 0; i < 5; i++) {
        if (i < soundPaths.length) {
            // sounds exists
            sounds[i] = new Sound(soundPool, soundPaths[i], mmr);
        } else {
            // no sound gesture
            sounds[i] = new Sound(soundPool, null, mmr);
        }
    }
    return new GesturePad(sounds, buttonView, color, colorDef, activity);
}
 
開發者ID:berict,項目名稱:Tapad,代碼行數:18,代碼來源:SoundHelper.java

示例12: PushUpSoundManager

import android.media.SoundPool; //導入依賴的package包/類
public PushUpSoundManager(final Activity activity) {

        AudioManager audioManager = (AudioManager) activity.getSystemService(Context.AUDIO_SERVICE);
        float actualVolume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
        float maxVolume = (float) audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
        currentVolume = actualVolume / maxVolume;
        activity.setVolumeControlStream(AudioManager.STREAM_MUSIC);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            createSoundPool();
        } else {
            createDepricatedSoundPool();
        }

        sounds.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
            @Override
            public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
                loaded = true;
            }
        });

        popSound = sounds.load(activity, R.raw.pop, 1);
        tenSound = sounds.load(activity, R.raw.ten, 1);
        tadaSound = sounds.load(activity, R.raw.tada, 1);
        counter = 0;
    }
 
開發者ID:andela-kogunde,項目名稱:iWorkout,代碼行數:27,代碼來源:PushUpSoundManager.java

示例13: buildSoundPool

import android.media.SoundPool; //導入依賴的package包/類
@SuppressWarnings("deprecation")
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private SoundPool buildSoundPool() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        AudioAttributes audioAttributes = new AudioAttributes.Builder()
                .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
                .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                .build();

        return new SoundPool.Builder()
                .setMaxStreams(MAX_STREAMS)
                .setAudioAttributes(audioAttributes)
                .build();
    }

    return new SoundPool(MAX_STREAMS, AudioManager.STREAM_MUSIC, 0);
}
 
開發者ID:toshiapp,項目名稱:toshi-android-client,代碼行數:18,代碼來源:SoundManager.java

示例14: playSequence

import android.media.SoundPool; //導入依賴的package包/類
public void playSequence(final boolean loop) {
        int midiValue = 0;
        int velocity = 0;
        int instrument = 0;
        String fileName = "dyn_" + midiValue + ".mid";
//        MidiFile.writeNoteFile(midiValue, velocity, fileName, MainActivity.config.tempo.getTempoEvent());
//        MidiFile.writeSingleNoteFile(midiValue,instrument, velocity, fileName, MainActivity.config.tempo.getTempoEvent());
        lastSequenceId = sequenceSoundPool.load(FileManager.getInstance().INTERNAL_PATH + "sequence.mid", 1);
        sequenceSoundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
            @Override
            public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
                sequenceSoundPool.play(lastSequenceId, 1, 1, 0, (loop ? -1 : 0), 1);
            }
        });

        try {
            mediaPlayer.reset();
            mediaPlayer.setDataSource(FileManager.getInstance().EXTERNAL_PATH + "sequence.mid");
            mediaPlayer.setLooping(loop);
            mediaPlayer.prepare();
            mediaPlayer.start();
        } catch (Exception e) {
            HLog.e("Media Player Failure");
            e.printStackTrace();
        }
    }
 
開發者ID:Ag47,項目名稱:TrueTone,代碼行數:27,代碼來源:SoundManager.java

示例15: AndroidAudio

import android.media.SoundPool; //導入依賴的package包/類
public AndroidAudio(final AndroidPlatform plat) {
  this.plat = plat;
  this.pool = new SoundPool(plat.activity.maxSimultaneousSounds(),
                            AudioManager.STREAM_MUSIC, 0);
  this.pool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
    public void onLoadComplete(SoundPool soundPool, int soundId, int status) {
      PooledSound sound = loadingSounds.remove(soundId);
      if (sound == null) {
        plat.log().warn("Got load complete for unknown sound [id=" + soundId + "]");
      } else if (status == 0) {
        sound.succeed(soundId);
      } else {
        sound.fail(new Exception("Sound load failed [errcode=" + status + "]"));
      }
    }
  });
}
 
開發者ID:playn,項目名稱:playn,代碼行數:18,代碼來源:AndroidAudio.java


注:本文中的android.media.SoundPool類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。