From b27f2d3126d68796925f96078fd5ab3eb466e98a Mon Sep 17 00:00:00 2001 From: Gil Dobjanschi Date: Thu, 7 Oct 2010 13:57:54 -0700 Subject: Remove MediaVideoItem and AudioTrack playback APIs. Change-Id: If3e5f341af7f581c90f04c91afb3681f9e8d5f82 --- .../java/android/media/videoeditor/AudioTrack.java | 172 ------------------- .../android/media/videoeditor/MediaVideoItem.java | 191 --------------------- 2 files changed, 363 deletions(-) diff --git a/media/java/android/media/videoeditor/AudioTrack.java b/media/java/android/media/videoeditor/AudioTrack.java index 3ebad00fbaff..076cc317a45a 100755 --- a/media/java/android/media/videoeditor/AudioTrack.java +++ b/media/java/android/media/videoeditor/AudioTrack.java @@ -18,17 +18,12 @@ package android.media.videoeditor; import java.io.IOException; -import android.util.Log; - /** * This class allows to handle an audio track. This audio file is mixed with the * audio samples of the MediaItems. * {@hide} */ public class AudioTrack { - // Logging - private static final String TAG = "AudioTrack"; - // Instance variables private final String mUniqueId; private final String mFilename; @@ -53,129 +48,6 @@ public class AudioTrack { // The audio waveform filename private String mAudioWaveformFilename; - private PlaybackThread mPlaybackThread; - - /** - * This listener interface is used by the AudioTrack to emit playback - * progress notifications. - */ - public interface PlaybackProgressListener { - /** - * This method notifies the listener of the current time position while - * playing an audio track - * - * @param audioTrack The audio track - * @param timeMs The current playback position (expressed in milliseconds - * since the beginning of the audio track). - * @param end true if the end of the audio track was reached - */ - public void onProgress(AudioTrack audioTrack, long timeMs, boolean end); - } - - /** - * The playback thread - */ - private class PlaybackThread extends Thread { - // Instance variables - private final PlaybackProgressListener mListener; - private final long mFromMs, mToMs; - private boolean mRun; - private final boolean mLoop; - private long mPositionMs; - - /** - * Constructor - * - * @param fromMs The time (relative to the beginning of the audio track) - * at which the playback will start - * @param toMs The time (relative to the beginning of the audio track) at - * which the playback will stop. Use -1 to play to the end of - * the audio track - * @param loop true if the playback should be looped once it reaches the - * end - * @param listener The listener which will be notified of the playback - * progress - */ - public PlaybackThread(long fromMs, long toMs, boolean loop, - PlaybackProgressListener listener) { - mPositionMs = mFromMs = fromMs; - if (toMs < 0) { - mToMs = mDurationMs; - } else { - mToMs = toMs; - } - mLoop = loop; - mListener = listener; - mRun = true; - } - - /* - * {@inheritDoc} - */ - @Override - public void run() { - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "===> PlaybackThread.run enter"); - } - - while (mRun) { - try { - sleep(100); - } catch (InterruptedException ex) { - break; - } - - mPositionMs += 100; - - if (mPositionMs >= mToMs) { - if (!mLoop) { - if (mListener != null) { - mListener.onProgress(AudioTrack.this, mPositionMs, true); - } - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "PlaybackThread.run playback complete"); - } - break; - } else { - // Fire a notification for the end of the clip - if (mListener != null) { - mListener.onProgress(AudioTrack.this, mToMs, false); - } - - // Rewind - mPositionMs = mFromMs; - if (mListener != null) { - mListener.onProgress(AudioTrack.this, mPositionMs, false); - } - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "PlaybackThread.run playback complete"); - } - } - } else { - if (mListener != null) { - mListener.onProgress(AudioTrack.this, mPositionMs, false); - } - } - } - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "===> PlaybackThread.run exit"); - } - } - - /** - * Stop the playback - * - * @return The stop position - */ - public long stopPlayback() { - mRun = false; - try { - join(); - } catch (InterruptedException ex) { - } - return mPositionMs; - } - }; /** * An object of this type cannot be instantiated by using the default @@ -508,50 +380,6 @@ public class AudioTrack { return mDuckingLowVolume; } - /** - * Start the playback of this audio track. This method does not block (does - * not wait for the playback to complete). - * - * @param fromMs The time (relative to the beginning of the audio track) at - * which the playback will start - * @param toMs The time (relative to the beginning of the audio track) at - * which the playback will stop. Use -1 to play to the end of the - * audio track - * @param loop true if the playback should be looped once it reaches the end - * @param listener The listener which will be notified of the playback - * progress - * @throws IllegalArgumentException if fromMs or toMs is beyond the playback - * duration - * @throws IllegalStateException if a playback, preview or an export is - * already in progress - */ - public void startPlayback(long fromMs, long toMs, boolean loop, - PlaybackProgressListener listener) { - if (fromMs >= mDurationMs) { - return; - } - mPlaybackThread = new PlaybackThread(fromMs, toMs, loop, listener); - mPlaybackThread.start(); - } - - /** - * Stop the audio track playback. This method blocks until the ongoing - * playback is stopped. - * - * @return The accurate current time when stop is effective expressed in - * milliseconds - */ - public long stopPlayback() { - final long stopTimeMs; - if (mPlaybackThread != null) { - stopTimeMs = mPlaybackThread.stopPlayback(); - mPlaybackThread = null; - } else { - stopTimeMs = 0; - } - return stopTimeMs; - } - /** * This API allows to generate a file containing the sample volume levels of * this audio track object. This function may take significant time and is diff --git a/media/java/android/media/videoeditor/MediaVideoItem.java b/media/java/android/media/videoeditor/MediaVideoItem.java index dd12336c22b2..f71f4f4a1eb8 100755 --- a/media/java/android/media/videoeditor/MediaVideoItem.java +++ b/media/java/android/media/videoeditor/MediaVideoItem.java @@ -19,7 +19,6 @@ package android.media.videoeditor; import java.io.IOException; import android.graphics.Bitmap; -import android.util.Log; import android.view.SurfaceHolder; /** @@ -27,9 +26,6 @@ import android.view.SurfaceHolder; * {@hide} */ public class MediaVideoItem extends MediaItem { - // Logging - private static final String TAG = "MediaVideoItem"; - // Instance variables private final int mWidth; private final int mHeight; @@ -50,142 +46,6 @@ public class MediaVideoItem extends MediaItem { private int mVolumePercentage; private boolean mMuted; private String mAudioWaveformFilename; - private PlaybackThread mPlaybackThread; - - /** - * This listener interface is used by the MediaVideoItem to emit playback - * progress notifications. This callback should be invoked after the - * number of frames specified by - * {@link #startPlayback(SurfaceHolder surfaceHolder, long fromMs, - * int callbackAfterFrameCount, PlaybackProgressListener listener)} - */ - public interface PlaybackProgressListener { - /** - * This method notifies the listener of the current time position while - * playing a media item - * - * @param mediaItem The media item - * @param timeMs The current playback position (expressed in milliseconds - * since the beginning of the media item). - * @param end true if the end of the media item was reached - */ - public void onProgress(MediaVideoItem mediaItem, long timeMs, boolean end); - } - - /** - * The playback thread - */ - private class PlaybackThread extends Thread { - // Instance variables - private final static long FRAME_DURATION = 33; - private final PlaybackProgressListener mListener; - private final int mCallbackAfterFrameCount; - private final long mFromMs, mToMs; - private boolean mRun; - private final boolean mLoop; - private long mPositionMs; - - /** - * Constructor - * - * @param fromMs The time (relative to the beginning of the media item) - * at which the playback will start - * @param toMs The time (relative to the beginning of the media item) at - * which the playback will stop. Use -1 to play to the end of - * the media item - * @param loop true if the playback should be looped once it reaches the - * end - * @param callbackAfterFrameCount The listener interface should be - * invoked after the number of frames specified by this - * parameter. - * @param listener The listener which will be notified of the playback - * progress - */ - public PlaybackThread(long fromMs, long toMs, boolean loop, int callbackAfterFrameCount, - PlaybackProgressListener listener) { - mPositionMs = mFromMs = fromMs; - if (toMs < 0) { - mToMs = mDurationMs; - } else { - mToMs = toMs; - } - mLoop = loop; - mCallbackAfterFrameCount = callbackAfterFrameCount; - mListener = listener; - mRun = true; - } - - /* - * {@inheritDoc} - */ - @Override - public void run() { - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "===> PlaybackThread.run enter"); - } - int frameCount = 0; - while (mRun) { - try { - sleep(FRAME_DURATION); - } catch (InterruptedException ex) { - break; - } - frameCount++; - mPositionMs += FRAME_DURATION; - - if (mPositionMs >= mToMs) { - if (!mLoop) { - if (mListener != null) { - mListener.onProgress(MediaVideoItem.this, mPositionMs, true); - } - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "PlaybackThread.run playback complete"); - } - break; - } else { - // Fire a notification for the end of the clip - if (mListener != null) { - mListener.onProgress(MediaVideoItem.this, mToMs, false); - } - - // Rewind - mPositionMs = mFromMs; - if (mListener != null) { - mListener.onProgress(MediaVideoItem.this, mPositionMs, false); - } - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "PlaybackThread.run playback complete"); - } - frameCount = 0; - } - } else { - if (frameCount == mCallbackAfterFrameCount) { - if (mListener != null) { - mListener.onProgress(MediaVideoItem.this, mPositionMs, false); - } - frameCount = 0; - } - } - } - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "===> PlaybackThread.run exit"); - } - } - - /** - * Stop the playback - * - * @return The stop position - */ - public long stopPlayback() { - mRun = false; - try { - join(); - } catch (InterruptedException ex) { - } - return mPositionMs; - } - }; /** * An object of this type cannot be instantiated with a default constructor @@ -407,57 +267,6 @@ public class MediaVideoItem extends MediaItem { return timeMs; } - /** - * Start the playback of this media item. This method does not block (does - * not wait for the playback to complete). The PlaybackProgressListener - * allows to track the progress at the time interval determined by the - * callbackAfterFrameCount parameter. The SurfaceHolder has to be created - * and ready for use before calling this method. - * - * @param surfaceHolder SurfaceHolder where the frames are rendered. - * @param fromMs The time (relative to the beginning of the media item) at - * which the playback will start - * @param toMs The time (relative to the beginning of the media item) at - * which the playback will stop. Use -1 to play to the end of the - * media item - * @param loop true if the playback should be looped once it reaches the end - * @param callbackAfterFrameCount The listener interface should be invoked - * after the number of frames specified by this parameter. - * @param listener The listener which will be notified of the playback - * progress - * @throws IllegalArgumentException if fromMs or toMs is beyond the playback - * duration - * @throws IllegalStateException if a playback, preview or an export is - * already in progress - */ - public void startPlayback(SurfaceHolder surfaceHolder, long fromMs, long toMs, boolean loop, - int callbackAfterFrameCount, PlaybackProgressListener listener) { - if (fromMs >= mDurationMs) { - return; - } - mPlaybackThread = new PlaybackThread(fromMs, toMs, loop, callbackAfterFrameCount, - listener); - mPlaybackThread.start(); - } - - /** - * Stop the media item playback. This method blocks until the ongoing - * playback is stopped. - * - * @return The accurate current time when stop is effective expressed in - * milliseconds - */ - public long stopPlayback() { - final long stopTimeMs; - if (mPlaybackThread != null) { - stopTimeMs = mPlaybackThread.stopPlayback(); - mPlaybackThread = null; - } else { - stopTimeMs = 0; - } - return stopTimeMs; - } - /** * This API allows to generate a file containing the sample volume levels of * the Audio track of this media item. This function may take significant -- cgit v1.2.3-59-g8ed1b