From: Pedro O. <or...@er...> - 2005-04-20 13:23:33
|
Another issue: Well, I have an AudioInputStream object. I suposse that with method read, i can read a number of bytes in the buffer array, do you know why this code throws an java.lang.UnsupportedOperationException? Code buff = jarray.zeros(4096, "b") ais (AudioInputStream object) ais.read(buff) Thanks Pedro |
From: Diez B. R. <de...@we...> - 2005-04-20 13:47:07
|
Am Mittwoch, 20. April 2005 15:23 schrieb Pedro Orantes: > Another issue: > > Well, I have an AudioInputStream object. I suposse that with method read, > i can read a number of bytes in the buffer array, do you know why this code > throws an java.lang.UnsupportedOperationException? > > Code > > buff = jarray.zeros(4096, "b") > > ais (AudioInputStream object) This is no legal code - neither jython nor java. Please post _working_ code - working means of course that it displays the undesirde behaviour. Apart from that: It appears that it is not a jython-problem but a java-problem. Diez |
From: Kent J. <ke...@td...> - 2005-04-20 14:30:51
|
Diez B. Roggisch wrote: > Am Mittwoch, 20. April 2005 15:23 schrieb Pedro Orantes: > >>Another issue: >> >> Well, I have an AudioInputStream object. I suposse that with method read, >>i can read a number of bytes in the buffer array, do you know why this code >>throws an java.lang.UnsupportedOperationException? >> >> Code >> >> buff = jarray.zeros(4096, "b") >> >> ais (AudioInputStream object) > > > This is no legal code - neither jython nor java. Please post _working_ code - > working means of course that it displays the undesirde behaviour. Also please post the entire error message including the stack trace, copied directly from the console output. Kent |
From: Pedro O. <or...@er...> - 2005-04-20 14:35:32
|
Kent Here is the entire error message including the stack trace: Traceback (innermost last): File "App.py", line 120, in ? File "App.py", line 15, in __init__ File "App.py", line 63, in getSonido java.lang.UnsupportedOperationException at de.jarnbjo.vorbis.Floor0.decodeFloor(Floor0.java:60) at de.jarnbjo.vorbis.AudioPacket.<init>(AudioPacket.java:125) at de.jarnbjo.vorbis.VorbisStream.getNextAudioPacket(VorbisStream.java:170) at de.jarnbjo.vorbis.VorbisStream.readPcm(VorbisStream.java:137) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at=20 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:3= 9) at=20 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp= l.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java) at org.python.core.PyMethod.__call__(PyMethod.java) at org.python.core.PyObject._callextra(PyObject.java) at VorbisInputStream$py.read$3 (/home/coco/Programas/eclipse/workspace/AppletOgg/VorbisInputStream.py:22) at=20 VorbisInputStream$py.call_function(/home/coco/Programas/eclipse/workspace/A= ppletOgg/VorbisInputStream.py) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyFunction.__call__(PyFunction.java) at org.python.core.PyMethod.__call__(PyMethod.java) at org.python.core.PyObject.__call__(PyObject.java) at org.python.core.PyObject._jcallexc(PyObject.java) at org.python.proxies.VorbisInputStream$VorbisInputStream$0.read(Unknown=20 Source) at javax.sound.sampled.AudioInputStream.read(AudioInputStream.java:275) at javax.sound.sampled.AudioInputStream.read(AudioInputStream.java:215) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at=20 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:3= 9) at=20 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp= l.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java) at org.python.core.PyMethod.__call__(PyMethod.java) at org.python.core.PyObject.__call__(PyObject.java) at org.python.core.PyInstance.invoke(PyInstance.java) at org.python.pycode._pyx0.getSonido$3(App.py:63) at org.python.pycode._pyx0.call_function(App.py) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyFunction.__call__(PyFunction.java) at org.python.core.PyInstance.invoke(PyInstance.java) at org.python.pycode._pyx0.__init__$2(App.py:15) at org.python.pycode._pyx0.call_function(App.py) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyFunction.__call__(PyFunction.java) at org.python.core.PyInstance.__init__(PyInstance.java) at org.python.core.PyClass.__call__(PyClass.java) at org.python.core.PyObject.__call__(PyObject.java) at org.python.pycode._pyx0.f$0(App.py:120) at org.python.pycode._pyx0.call_function(App.py) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyCode.call(PyCode.java) at org.python.core.Py.runCode(Py.java) at org.python.core.__builtin__.execfile_flags(__builtin__.java) at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java) at org.python.util.jython.main(jython.java) java.lang.UnsupportedOperationException:=20 java.lang.UnsupportedOperationException Thanks El Mi=E9rcoles, 20 de Abril de 2005 16:30, Kent Johnson escribi=F3: > Diez B. Roggisch wrote: > > Am Mittwoch, 20. April 2005 15:23 schrieb Pedro Orantes: > >>Another issue: > >> > >> Well, I have an AudioInputStream object. I suposse that with method > >> read, i can read a number of bytes in the buffer array, do you know why > >> this code throws an java.lang.UnsupportedOperationException? > >> > >> Code > >> > >> buff =3D jarray.zeros(4096, "b") > >> > >> ais (AudioInputStream object) > > > > This is no legal code - neither jython nor java. Please post _working_ > > code - working means of course that it displays the undesirde behaviour. > > Also please post the entire error message including the stack trace, copi= ed > directly from the console output. > > Kent > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: New Crystal Reports XI. > Version 11 adds new functionality designed to reduce time involved in > creating, integrating, and deploying reporting solutions. Free runtime > info, new features, or free trial, at: > http://www.businessobjects.com/devxi/728 > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Diez B. R. <de...@we...> - 2005-04-20 14:52:51
|
Am Mittwoch, 20. April 2005 16:35 schrieb Pedro Orantes: > Kent Here is the entire error message including the stack trace: > Traceback (innermost last): > File "App.py", line 120, in ? > File "App.py", line 15, in __init__ > File "App.py", line 63, in getSonido > java.lang.UnsupportedOperationException > at de.jarnbjo.vorbis.Floor0.decodeFloor(Floor0.java:60) So this line throws the exception - as you can see, the VorbisInputStream.read method us called, and delegates the method to de.jarnbjo.vorbis.VorbisStream.readPcm as you wanted. So - it's a java-problem. Diez |
From: Kent J. <ke...@td...> - 2005-04-20 14:53:25
|
Do you have the source for de.jarnbjo.vorbis.Floor0? What is happening in decodeFloor(Floor0.java:60)? That is the source of the exception. Kent Pedro Orantes wrote: > Kent Here is the entire error message including the stack trace: > Traceback (innermost last): > File "App.py", line 120, in ? > File "App.py", line 15, in __init__ > File "App.py", line 63, in getSonido > java.lang.UnsupportedOperationException > at de.jarnbjo.vorbis.Floor0.decodeFloor(Floor0.java:60) > at de.jarnbjo.vorbis.AudioPacket.<init>(AudioPacket.java:125) > at de.jarnbjo.vorbis.VorbisStream.getNextAudioPacket(VorbisStream.java:170) > at de.jarnbjo.vorbis.VorbisStream.readPcm(VorbisStream.java:137) |
From: Pedro O. <or...@er...> - 2005-04-20 14:15:15
|
Ok, i'm going to put the complete Code, (sorry for this really bad Code), y= ou=20 need JDK1.5 for run it. Here is the App.py main file from java.applet import Applet import java.io as io import javax.sound.sampled as sampled import java.lang as lang import de.jarnbjo.ogg as ogg import de.jarnbjo.vorbis as vorbis import java.net as net import jarray import org.python.core from VorbisInputStream import * class Sonido: def __init__(self): self.nombre =3D 'ffss.ogg' =20 self.getSonido() #self.play(self.getDocumentBase(), 'test.mp3.wav') =20 def getSonido(self): archivo =3D io.File(self.nombre) os=3Dogg.FileStream(io.RandomAccessFile(self.nombre, "r")) los=3Dos.getLogicalStreams().iterator().next() vs=3Dvorbis.VorbisStream(los) # =20 # vaf =3D vorbis.VorbisAudioFileReader() # vff =3D vaf.getAudioFileFormat(archivo) # os =3D vaf.getAudioInputStream(archivo) # # buff =3D jarray.zeros(4096,'b') =20 af=3D sampled.AudioFormat(vs.getIdentificationHeader().getSampleRat= e(), 16, vs.getIdentificationHeader().getChannels(), 1, 1) print af #(ogg.LogicalOggStream) (sampled.SourceDataLine)=20 # af =3D sampled.AudioFormat(sampled.AudioFormat.Encoding.PCM_SIGNED, # 44100.0, # 16, # 2, # 4,44100.0,1) # littleEndian # =09 #af =3D os.getFormat() #ais =3D sampled.AudioSystem.getAudioInputStream(os, af) info =3D sampled.DataLine.Info(sampled.SourceDataLine.class, af) print info.isFormatSupported(af) =20 print sampled.AudioSystem.isLineSupported(info) ol =3D sampled.SourceDataLine print ol.toString() ol =3D sampled.AudioSystem.getSourceDataLine(af) =20 print ol.toString() ol.open(af) ol.start() #ver =3D VorbisInputStream vis =3D VorbisInputStream(vs) # I think that it is wrong ais =3D sampled.AudioInputStream(vis,af,-1) =20 ais.read(buff) ### Here is the problem that throws the Exception =20 print len(buff) cnt=3D0 offset=3D0 total=3D0 running=3D1 bol =3D 1 # while(running=3D=3D1):=20 # offset=3D0 # while(bol=3D=3D1):=20 # if (offset<len(buff)): # perico =3D len(buff) - offset # cnt =3D ais.read(buff) #, offset, len(buff)-offset) # if (cnt>0): #I have to clean this Code # offset+=3Dcnt=20 # else: # bol =3D 0 =20 # ####& ais.read(buff, offset, len(buff)-offset)= >0 # offset+=3Dcnt =20 # if(cnt=3D=3D-1): # running=3D1 # if(offset > 0): # ol.write(buff, 0, offset); # total+=3Doffset =20 # offset=3D0 # cnt=3D0 =20 print 'Se ha salido' ol.drain() ol.close() #print mixer.getSourceLineInfo() =20 root =3D Sonido() Here Is the VorbisInputStream.py code, I have to make it from 0 (It's reall= y=20 bad =3D) ) class VorbisInputStream(io.InputStream): =20 def __init__(self,source2): self.source =3D vorbis.VorbisStream() self.source =3D source2 =20 def read(self): return 0 =20 def read(self,buff): return read(buff,0,len(buff)) =20 cnt =3D 0 =20 def read(self,buff, offset, lenght): return self.source.readPcm(buff, offset, lenght) Thanks Again El Mi=E9rcoles, 20 de Abril de 2005 15:46, Diez B. Roggisch escribi=F3: > Am Mittwoch, 20. April 2005 15:23 schrieb Pedro Orantes: > > Another issue: > > > > Well, I have an AudioInputStream object. I suposse that with method > > read, i can read a number of bytes in the buffer array, do you know why > > this code throws an java.lang.UnsupportedOperationException? > > > > Code > > > > buff =3D jarray.zeros(4096, "b") > > > > ais (AudioInputStream object) > > This is no legal code - neither jython nor java. Please post _working_ co= de > - working means of course that it displays the undesirde behaviour. > > Apart from that: It appears that it is not a jython-problem but a > java-problem. > > Diez > > > ------------------------------------------------------- > This SF.Net email is sponsored by: New Crystal Reports XI. > Version 11 adds new functionality designed to reduce time involved in > creating, integrating, and deploying reporting solutions. Free runtime > info, new features, or free trial, at: > http://www.businessobjects.com/devxi/728 > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Diez B. R. <de...@we...> - 2005-04-20 14:24:21
|
> class VorbisInputStream(io.InputStream): > > def __init__(self,source2): > self.source = vorbis.VorbisStream() > self.source = source2 > > def read(self): > return 0 > > def read(self,buff): > return read(buff,0,len(buff)) > > cnt = 0 > > def read(self,buff, offset, lenght): > return self.source.readPcm(buff, offset, lenght) This doesn't work - there is no method-overloading in jython (or python).Try something like this: class VorbisInputStream(io.InputStream): def __init__(self,source2): self.source = vorbis.VorbisStream() self.source = source2 def read(self, *args): if len(args) == 0: return 0 elif len(args) == 1: args.append(0) args.append(len(buff)) return self.source.readPcm(*args) Diez |
From: Pedro O. <or...@er...> - 2005-04-20 14:33:29
|
Thanks for the correction, but the problem is the same again. I get the Exception when i'm trying to read the AudioInputStream to the=20 buffer. Traceback (innermost last): File "App.py", line 120, in ? File "App.py", line 15, in __init__ File "App.py", line 63, in getSonido java.lang.UnsupportedOperationException etc.... Line 63: ais.read(buff).=20 Pedro El Mi=E9rcoles, 20 de Abril de 2005 16:24, Diez B. Roggisch escribi=F3: > class VorbisInputStream(io.InputStream): > =A0 =A0 def __init__(self,source2): > =A0 =A0 =A0 =A0 self.source =3D vorbis.VorbisStream() > =A0 =A0 =A0 =A0 self.source =3D source2 > =A0 =A0 def read(self, *args): > =A0 =A0 =A0 =A0 if len(args) =3D=3D 0: > =A0 =A0 =A0 =A0 =A0 return 0 > =A0 =A0 =A0 =A0 elif len(args) =3D=3D 1: > =A0 =A0 =A0 =A0 =A0 args.append(0) > =A0 =A0 =A0 =A0 =A0 args.append(len(buff)) > =A0 =A0 =A0 =A0 return self.source.readPcm(*args) |