@Implements(value=android.media.MediaMuxer.class, minSdk=21) public class ShadowMediaMuxer extends Object
MediaMuxer
which directly passes input bytes to the
specified file, with no modification.Constructor | Description |
---|---|
ShadowMediaMuxer() |
Modifier and Type | Method | Description |
---|---|---|
protected void |
__constructor__(String path,
int format) |
Opens a FileOutputStream for the given path, and sets muxer state.
|
protected static int |
nativeAddTrack(long nativeObject,
String[] keys,
Object[] values) |
Returns an incremented track id for the associated muxer.
|
protected static long |
nativeSetup(FileDescriptor fd,
int format) |
Generates and returns an internal id to track the FileOutputStream corresponding to individual
MediaMuxer instances.
|
protected static void |
nativeStop(long nativeObject) |
Closes the FileOutputStream for the associated muxer.
|
protected static void |
nativeWriteSampleData(long nativeObject,
int trackIndex,
ByteBuffer byteBuf,
int offset,
int size,
long presentationTimeUs,
int flags) |
Writes the given data to the FileOutputStream for the associated muxer.
|
@Implementation protected void __constructor__(String path, int format) throws IOException
This needs to be shadowed, because the current MediaMuxer constructor opens a RandomAccessFile, passes only the FileDescriptor along, and then closes the file. Since there does not appear to be an easy way to go from FileDescriptor to a writeable stream in Java, this method overrides that behavior to instead open and maintain a FileOutputStream.
IOException
@Implementation protected static long nativeSetup(FileDescriptor fd, int format) throws IOException
IOException
@Implementation protected static int nativeAddTrack(long nativeObject, String[] keys, Object[] values)
@Implementation protected static void nativeWriteSampleData(long nativeObject, int trackIndex, ByteBuffer byteBuf, int offset, int size, long presentationTimeUs, int flags)
@Implementation protected static void nativeStop(long nativeObject)