Evan
unread,Jul 21, 2016, 1:53:35 PM7/21/16Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to xuggler-users
package com.evanssound;
import com.xuggle.mediatool.IMediaReader;
import com.xuggle.mediatool.IMediaListener;
import com.xuggle.mediatool.ToolFactory;
import com.xuggle.mediatool.MediaListenerAdapter;
import com.xuggle.mediatool.event.IReadPacketEvent;
import java.nio.ByteBuffer;
import java.util.LinkedList;
import java.nio.file.Paths;
import java.nio.ByteBuffer;
import java.nio.ShortBuffer;
import com.xuggle.mediatool.IMediaWriter;
import com.xuggle.xuggler.IPacket;
class Generator{
public static void main(String[] args){
if(args.length == 0){
System.out.printf("%s%n","Usage: Generator \"path\"");
return;
}
IMediaReader reader = ToolFactory.makeReader(args[0]);
reader.addListener(new GetTone());
for(;reader.readPacket() == null;){}
//got tone
String folderPathString = Paths.get(args[0]).getParent().toString();
for(int i = 88; i < 89; i++){
//make new file
IMediaWriter writer = ToolFactory.makeWriter(folderPathString+"/"+i+".flac");
writer.addAudioStream(0, 0, com.xuggle.xuggler.ICodec.ID.CODEC_ID_FLAC,1,44100);
//create audio
ByteBuffer bytes = ByteBuffer.allocate(tone.size());
ShortBuffer shorts = bytes.asShortBuffer();
short[] shortsArray = new short[shorts.capacity()];
for(Byte b : tone)
bytes.put(b.byteValue());
for(int ii = 0;shorts.hasRemaining();ii++)
shortsArray[ii] = shorts.get();
writer.encodeAudio(0,shortsArray);
writer.close();
}
}
static class GetTone extends MediaListenerAdapter{
@Override
public void onReadPacket(IReadPacketEvent event){
IPacket iPacket = event.getPacket();
byte[] dst = new byte[iPacket.getSize()];
iPacket.get(0,dst,0,dst.length);
for(byte b : dst){
tone.add(b);
}
}
}
private static LinkedList<Byte> tone = new LinkedList<>();
}
It's supposed to make a copy of the file right now but all it does is make static.