/** * Attemts to start playback. If playback already running this method has no any effect. Playback * startup is async operation: method initiates playback preparation and returns immediate - * playback may run later. */ public void play() { if (state == PlayerState.PLAYING) return; PlayerThread th = currentPlayerThread.get(); if (th == null) { th = new PlayerThread(this); if (currentPlayerThread.compareAndSet(null, th)) th.start(); } }
public void playSequenceFromJFugueString(String noteString, int instrument) { initialize(); try { sequencer.open(); synthesizer.open(); } catch (MidiUnavailableException e) { e.printStackTrace(); } noteString = "I[" + instrument + "] " + noteString; player = new Player(sequencer); Pattern pattern = new Pattern(noteString); PlayerThread thread = new PlayerThread(player, pattern); thread.start(); }
public ParallelRedoPlayer( boolean writable, boolean unloggedReplay, boolean ignoreReplayErrors, boolean skipDeleteOps, int numThreads, int queueCapacity) { super(writable, unloggedReplay, ignoreReplayErrors, skipDeleteOps); ZimbraLog.redolog.debug("Starting ParallelRedoPlayer"); numThreads = Math.max(numThreads, 1); mPlayerThreads = new PlayerThread[numThreads]; for (int i = 0; i < numThreads; i++) { String name = "RedoPlayer-" + Integer.toString(i); PlayerThread player = new PlayerThread(queueCapacity); mPlayerThreads[i] = player; player.setName(name); player.start(); } }