[ 
https://issues.apache.org/jira/browse/ARIES-780?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

oliver  z updated ARIES-780:
----------------------------

    Description: 
I'm trying to build a modular player for sites like jamendo. The problem is 
that the streaming format is in mp3 (or ogg sometimes). The librarys providing 
such support try to use the SPI mechanism of the JRE which is a problem in OSGi 
environments.
So i'm really happy that this is adressed with SPI Fly - but its somehow not 
working for me.

I tried the dynamic weaving:
added the asm bundle and the spi fly dynamic weaving bundle in the "bundle" dir 
of apache felix (works fine, lb shows me that both bundles are running)
   ID|State      |Level|Name
    0|Active     |    0|System Bundle (4.0.1)
    1|Active     |    1|ASM all classes (3.2.0)
    2|Active     |    1|json simple OSGi Bundle (1.0.0.SNAPSHOT)
    3|Active     |    1|Mp3Wrapper OSGi Bundle (1.0.0.SNAPSHOT)
    4|Active     |    1|Apache Aries SPI Fly Dynamic Weaving Bundle 
(0.4.0.SNAPSHOT)
the mp3wrapper contains the spi providers (mp3spi, tritounus share etc. for 
playing mp3 files - they replace AudioInputStream and some others), so i added 
in the MANIFEST.MF in mp3wrapper the following header:
SPI-Provider: *
the consumer is my playerengine bundle which contains the following line in its 
manifest:
SPI-Consumer: *

when i start the OSGi container i get the following:

[BROWSER]: Standard Gui (Browser) registered.
@@@ 1: <init>#()V#null~null
### 183: java/lang/Object#<init>#()V
@@@ 1: start#(Lorg/osgi/framework/BundleContext;)V#null~[java/lang/Exception]
### 183: 
org/dyndns/soundi/soundboxplayerengine/DefaultPlayerEngine#<init>#(Lorg/osgi/framework/BundleContext;)V
### 182: 
org/dyndns/soundi/portals/interfaces/CommunicationAction#toString#()Ljava/lang/String;
### 182: 
org/dyndns/soundi/portals/interfaces/CommunicationAction#toString#()Ljava/lang/String;
### 183: java/util/Hashtable#<init>#()V
### 182: 
java/util/Dictionary#put#(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
### 182: java/lang/Class#getName#()Ljava/lang/String;
### 182: java/lang/Class#getName#()Ljava/lang/String;
### 185: 
org/osgi/framework/BundleContext#registerService#([Ljava/lang/String;Ljava/lang/Object;Ljava/util/Dictionary;)L
org/osgi/framework/ServiceRegistration;
### 184: 
org/dyndns/soundi/utils/Util#sendMessage#(Lorg/dyndns/soundi/utils/Util$Component;Ljava/lang/String;)V
@@@ 1: stop#(Lorg/osgi/framework/BundleContext;)V#null~[java/lang/Exception]
@@@ 0: <init>#(Lorg/osgi/framework/BundleContext;)V#null~null
### 183: java/lang/Object#<init>#()V
@@@ 1: 
play#(Ljava/io/InputStream;Lorg/dyndns/soundi/portals/interfaces/Song;)V#null~null
### 184: 
javax/sound/sampled/AudioSystem#getAudioFileTypes#()[Ljavax/sound/sampled/AudioFileFormat$Type;
### 182: 
javax/sound/sampled/AudioFileFormat$Type#getExtension#()Ljava/lang/String;
### 182: java/io/PrintStream#println#(Ljava/lang/String;)V
### 183: java/io/BufferedInputStream#<init>#(Ljava/io/InputStream;)V
### 184: 
javax/sound/sampled/AudioSystem#getAudioInputStream#(Ljava/io/InputStream;)Ljavax/sound/sampled/AudioInputStrea
m;
### 182: java/lang/Class#getName#()Ljava/lang/String;
### 184: 
java/util/logging/Logger#getLogger#(Ljava/lang/String;)Ljava/util/logging/Logger;
### 182: 
java/util/logging/Logger#log#(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
### 182: java/lang/Class#getName#()Ljava/lang/String;
### 184: 
java/util/logging/Logger#getLogger#(Ljava/lang/String;)Ljava/util/logging/Logger;
### 182: 
java/util/logging/Logger#log#(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
### 182: 
javax/sound/sampled/AudioInputStream#getFormat#()Ljavax/sound/sampled/AudioFormat;
### 182: javax/sound/sampled/AudioFormat#getSampleRate#()F
### 182: javax/sound/sampled/AudioFormat#getChannels#()I
### 182: javax/sound/sampled/AudioFormat#getChannels#()I
### 182: javax/sound/sampled/AudioFormat#getSampleRate#()F
### 183: 
javax/sound/sampled/AudioFormat#<init>#(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
### 184: 
javax/sound/sampled/AudioSystem#getAudioInputStream#(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/Audi
oInputStream;)Ljavax/sound/sampled/AudioInputStream;
### 183: 
org/dyndns/soundi/soundboxplayerengine/DefaultPlayerEngine#rawplay#(Ljavax/sound/sampled/AudioFormat;Ljavax/sou
nd/sampled/AudioInputStream;Lorg/dyndns/soundi/portals/interfaces/Song;)V
@@@ 1: pause#()V#null~null
@@@ 1: stop#()V#null~null
@@@ 1: handleEvent#(Lorg/osgi/service/event/Event;)V#null~null
@@@ 2: 
rawplay#(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/AudioInputStream;Lorg/dyndns/soundi/portals/interf
aces/Song;)V#null~null
### 183: 
org/dyndns/soundi/soundboxplayerengine/DefaultPlayerEngine#getLine#(Ljavax/sound/sampled/AudioFormat;)Ljavax/so
und/sampled/SourceDataLine;
### 185: javax/sound/sampled/SourceDataLine#start#()V
### 185: javazoom/spi/PropertiesContainer#properties#()Ljava/util/Map;
### 185: java/util/Map#get#(Ljava/lang/Object;)Ljava/lang/Object;
### 182: java/lang/Long#longValue#()J
### 185: java/util/Map#get#(Ljava/lang/Object;)Ljava/lang/Object;
### 182: java/lang/Long#longValue#()J
### 182: javax/sound/sampled/AudioInputStream#read#([BII)I
### 185: javax/sound/sampled/SourceDataLine#write#([BII)I
### 185: javax/sound/sampled/SourceDataLine#drain#()V
### 185: javax/sound/sampled/SourceDataLine#stop#()V
### 185: javax/sound/sampled/SourceDataLine#close#()V
### 182: java/lang/Exception#printStackTrace#()V
@@@ 2: 
getLine#(Ljavax/sound/sampled/AudioFormat;)Ljavax/sound/sampled/SourceDataLine;#null~[javax/sound/sampled/LineUna
vailableException]
### 183: 
javax/sound/sampled/DataLine$Info#<init>#(Ljava/lang/Class;Ljavax/sound/sampled/AudioFormat;)V
### 184: 
javax/sound/sampled/AudioSystem#getLine#(Ljavax/sound/sampled/Line$Info;)Ljavax/sound/sampled/Line;
### 185: 
javax/sound/sampled/SourceDataLine#open#(Ljavax/sound/sampled/AudioFormat;)V
[PLAYERENGINE]: Default player engine registered!

so it does *something*, but it looks like errors. I got a reply that this is 
just debugging output and the functionality should work.
But it does not. I wrote a little test in my playerengine bundle:
Type[] audioFileTypes = AudioSystem.getAudioFileTypes();
        for(Type a : audioFileTypes)
        {
            System.out.println(a.getExtension()); 
        }

if it would work, there should be:
wav (provided by JRE)
au (provided by JRE)
aif (provided by JRE)
mp3 (provided by mp3spi)
but the last one is missing, i cannot play mp3s, i get an exception:
13.11.2011 09:23:05 org.dyndns.soundi.soundboxplayerengine.DefaultPlayerEngine 
play
SCHWERWIEGEND: null
javax.sound.sampled.UnsupportedAudioFileException: could not get audio input 
stream from input stream
        at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
        at 
org.dyndns.soundi.soundboxplayerengine.DefaultPlayerEngine.play(DefaultPlayerEngine.java:47)
        at 
org.dyndns.soundi.soundbox.core.gui.PlayerFrame.play(PlayerFrame.java:217)
        at 
org.dyndns.soundi.soundbox.core.gui.PlayerFrame.handleEvent(PlayerFrame.java:194)
        at 
org.apache.felix.eventadmin.impl.tasks.HandlerTaskImpl.execute(HandlerTaskImpl.java:88)

maybe this is a bug? i'm not familiar with bytecode so i can't help nor go 
deeper and check whats going on :(

the complete framework with my bundles and asm/dynamic weaving (running 
example) can be downloaded here (2.3mb):
http://download.origo.ethz.ch/soundbox/3349/felix-framework-4.0.1.7z

thanks in advance

edit:
to run the application:
1) java -jar bin\felix.jar 
    then 2 windows should open 
    wait a little bit until "Jamendo plugin initialized" appears
2) now go the textfield where "Enter a keyword..." stands 
    enter something like "dire" and click on the "go" button
    there should appear a list of songs in the table
3) click one so that it is marked and hit the button "add to player"
    "add to player" tries to start the playback - the dynamic weaving happens 
and the exception will be thrown
 

  was:
I'm trying to build a modular player for sites like jamendo. The problem is 
that the streaming format is in mp3 (or ogg sometimes). The librarys providing 
such support try to use the SPI mechanism of the JRE which is a problem in OSGi 
environments.
So i'm really happy that this is adressed with SPI Fly - but its somehow not 
working for me.

I tried the dynamic weaving:
added the asm bundle and the spi fly dynamic weaving bundle in the "bundle" dir 
of apache felix (works fine, lb shows me that both bundles are running)
   ID|State      |Level|Name
    0|Active     |    0|System Bundle (4.0.1)
    1|Active     |    1|ASM all classes (3.2.0)
    2|Active     |    1|json simple OSGi Bundle (1.0.0.SNAPSHOT)
    3|Active     |    1|Mp3Wrapper OSGi Bundle (1.0.0.SNAPSHOT)
    4|Active     |    1|Apache Aries SPI Fly Dynamic Weaving Bundle 
(0.4.0.SNAPSHOT)
the mp3wrapper contains the spi providers (mp3spi, tritounus share etc. for 
playing mp3 files - they replace AudioInputStream and some others), so i added 
in the MANIFEST.MF in mp3wrapper the following header:
SPI-Provider: *
the consumer is my playerengine bundle which contains the following line in its 
manifest:
SPI-Consumer: *

when i start the OSGi container i get the following:

[BROWSER]: Standard Gui (Browser) registered.
@@@ 1: <init>#()V#null~null
### 183: java/lang/Object#<init>#()V
@@@ 1: start#(Lorg/osgi/framework/BundleContext;)V#null~[java/lang/Exception]
### 183: 
org/dyndns/soundi/soundboxplayerengine/DefaultPlayerEngine#<init>#(Lorg/osgi/framework/BundleContext;)V
### 182: 
org/dyndns/soundi/portals/interfaces/CommunicationAction#toString#()Ljava/lang/String;
### 182: 
org/dyndns/soundi/portals/interfaces/CommunicationAction#toString#()Ljava/lang/String;
### 183: java/util/Hashtable#<init>#()V
### 182: 
java/util/Dictionary#put#(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
### 182: java/lang/Class#getName#()Ljava/lang/String;
### 182: java/lang/Class#getName#()Ljava/lang/String;
### 185: 
org/osgi/framework/BundleContext#registerService#([Ljava/lang/String;Ljava/lang/Object;Ljava/util/Dictionary;)L
org/osgi/framework/ServiceRegistration;
### 184: 
org/dyndns/soundi/utils/Util#sendMessage#(Lorg/dyndns/soundi/utils/Util$Component;Ljava/lang/String;)V
@@@ 1: stop#(Lorg/osgi/framework/BundleContext;)V#null~[java/lang/Exception]
@@@ 0: <init>#(Lorg/osgi/framework/BundleContext;)V#null~null
### 183: java/lang/Object#<init>#()V
@@@ 1: 
play#(Ljava/io/InputStream;Lorg/dyndns/soundi/portals/interfaces/Song;)V#null~null
### 184: 
javax/sound/sampled/AudioSystem#getAudioFileTypes#()[Ljavax/sound/sampled/AudioFileFormat$Type;
### 182: 
javax/sound/sampled/AudioFileFormat$Type#getExtension#()Ljava/lang/String;
### 182: java/io/PrintStream#println#(Ljava/lang/String;)V
### 183: java/io/BufferedInputStream#<init>#(Ljava/io/InputStream;)V
### 184: 
javax/sound/sampled/AudioSystem#getAudioInputStream#(Ljava/io/InputStream;)Ljavax/sound/sampled/AudioInputStrea
m;
### 182: java/lang/Class#getName#()Ljava/lang/String;
### 184: 
java/util/logging/Logger#getLogger#(Ljava/lang/String;)Ljava/util/logging/Logger;
### 182: 
java/util/logging/Logger#log#(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
### 182: java/lang/Class#getName#()Ljava/lang/String;
### 184: 
java/util/logging/Logger#getLogger#(Ljava/lang/String;)Ljava/util/logging/Logger;
### 182: 
java/util/logging/Logger#log#(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
### 182: 
javax/sound/sampled/AudioInputStream#getFormat#()Ljavax/sound/sampled/AudioFormat;
### 182: javax/sound/sampled/AudioFormat#getSampleRate#()F
### 182: javax/sound/sampled/AudioFormat#getChannels#()I
### 182: javax/sound/sampled/AudioFormat#getChannels#()I
### 182: javax/sound/sampled/AudioFormat#getSampleRate#()F
### 183: 
javax/sound/sampled/AudioFormat#<init>#(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
### 184: 
javax/sound/sampled/AudioSystem#getAudioInputStream#(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/Audi
oInputStream;)Ljavax/sound/sampled/AudioInputStream;
### 183: 
org/dyndns/soundi/soundboxplayerengine/DefaultPlayerEngine#rawplay#(Ljavax/sound/sampled/AudioFormat;Ljavax/sou
nd/sampled/AudioInputStream;Lorg/dyndns/soundi/portals/interfaces/Song;)V
@@@ 1: pause#()V#null~null
@@@ 1: stop#()V#null~null
@@@ 1: handleEvent#(Lorg/osgi/service/event/Event;)V#null~null
@@@ 2: 
rawplay#(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/AudioInputStream;Lorg/dyndns/soundi/portals/interf
aces/Song;)V#null~null
### 183: 
org/dyndns/soundi/soundboxplayerengine/DefaultPlayerEngine#getLine#(Ljavax/sound/sampled/AudioFormat;)Ljavax/so
und/sampled/SourceDataLine;
### 185: javax/sound/sampled/SourceDataLine#start#()V
### 185: javazoom/spi/PropertiesContainer#properties#()Ljava/util/Map;
### 185: java/util/Map#get#(Ljava/lang/Object;)Ljava/lang/Object;
### 182: java/lang/Long#longValue#()J
### 185: java/util/Map#get#(Ljava/lang/Object;)Ljava/lang/Object;
### 182: java/lang/Long#longValue#()J
### 182: javax/sound/sampled/AudioInputStream#read#([BII)I
### 185: javax/sound/sampled/SourceDataLine#write#([BII)I
### 185: javax/sound/sampled/SourceDataLine#drain#()V
### 185: javax/sound/sampled/SourceDataLine#stop#()V
### 185: javax/sound/sampled/SourceDataLine#close#()V
### 182: java/lang/Exception#printStackTrace#()V
@@@ 2: 
getLine#(Ljavax/sound/sampled/AudioFormat;)Ljavax/sound/sampled/SourceDataLine;#null~[javax/sound/sampled/LineUna
vailableException]
### 183: 
javax/sound/sampled/DataLine$Info#<init>#(Ljava/lang/Class;Ljavax/sound/sampled/AudioFormat;)V
### 184: 
javax/sound/sampled/AudioSystem#getLine#(Ljavax/sound/sampled/Line$Info;)Ljavax/sound/sampled/Line;
### 185: 
javax/sound/sampled/SourceDataLine#open#(Ljavax/sound/sampled/AudioFormat;)V
[PLAYERENGINE]: Default player engine registered!

so it does *something*, but it looks like errors. I got a reply that this is 
just debugging output and the functionality should work.
But it does not. I wrote a little test in my playerengine bundle:
Type[] audioFileTypes = AudioSystem.getAudioFileTypes();
        for(Type a : audioFileTypes)
        {
            System.out.println(a.getExtension()); 
        }

if it would work, there should be:
wav (provided by JRE)
au (provided by JRE)
aif (provided by JRE)
mp3 (provided by mp3spi)
but the last one is missing, i cannot play mp3s, i get an exception:
13.11.2011 09:23:05 org.dyndns.soundi.soundboxplayerengine.DefaultPlayerEngine 
play
SCHWERWIEGEND: null
javax.sound.sampled.UnsupportedAudioFileException: could not get audio input 
stream from input stream
        at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
        at 
org.dyndns.soundi.soundboxplayerengine.DefaultPlayerEngine.play(DefaultPlayerEngine.java:47)
        at 
org.dyndns.soundi.soundbox.core.gui.PlayerFrame.play(PlayerFrame.java:217)
        at 
org.dyndns.soundi.soundbox.core.gui.PlayerFrame.handleEvent(PlayerFrame.java:194)
        at 
org.apache.felix.eventadmin.impl.tasks.HandlerTaskImpl.execute(HandlerTaskImpl.java:88)

maybe this is a bug? i'm not familiar with bytecode so i can't help nor go 
deeper and check whats going on :(

the complete framework with my bundles and asm/dynamic weaving (running 
example) can be downloaded here (2.3mb):
http://download.origo.ethz.ch/soundbox/3349/felix-framework-4.0.1.7z

thanks in advance
 

    
> problem getting mp3spi working with dynamic/static weaving
> ----------------------------------------------------------
>
>                 Key: ARIES-780
>                 URL: https://issues.apache.org/jira/browse/ARIES-780
>             Project: Aries
>          Issue Type: Question
>          Components: Subsystem
>    Affects Versions: parent-0.4.0
>         Environment: win7 x64, apache felix 4.0.1 and equinox 3.7.1
>            Reporter: oliver  z
>            Priority: Minor
>
> I'm trying to build a modular player for sites like jamendo. The problem is 
> that the streaming format is in mp3 (or ogg sometimes). The librarys 
> providing such support try to use the SPI mechanism of the JRE which is a 
> problem in OSGi environments.
> So i'm really happy that this is adressed with SPI Fly - but its somehow not 
> working for me.
> I tried the dynamic weaving:
> added the asm bundle and the spi fly dynamic weaving bundle in the "bundle" 
> dir of apache felix (works fine, lb shows me that both bundles are running)
>    ID|State      |Level|Name
>     0|Active     |    0|System Bundle (4.0.1)
>     1|Active     |    1|ASM all classes (3.2.0)
>     2|Active     |    1|json simple OSGi Bundle (1.0.0.SNAPSHOT)
>     3|Active     |    1|Mp3Wrapper OSGi Bundle (1.0.0.SNAPSHOT)
>     4|Active     |    1|Apache Aries SPI Fly Dynamic Weaving Bundle 
> (0.4.0.SNAPSHOT)
> the mp3wrapper contains the spi providers (mp3spi, tritounus share etc. for 
> playing mp3 files - they replace AudioInputStream and some others), so i 
> added in the MANIFEST.MF in mp3wrapper the following header:
> SPI-Provider: *
> the consumer is my playerengine bundle which contains the following line in 
> its manifest:
> SPI-Consumer: *
> when i start the OSGi container i get the following:
> [BROWSER]: Standard Gui (Browser) registered.
> @@@ 1: <init>#()V#null~null
> ### 183: java/lang/Object#<init>#()V
> @@@ 1: start#(Lorg/osgi/framework/BundleContext;)V#null~[java/lang/Exception]
> ### 183: 
> org/dyndns/soundi/soundboxplayerengine/DefaultPlayerEngine#<init>#(Lorg/osgi/framework/BundleContext;)V
> ### 182: 
> org/dyndns/soundi/portals/interfaces/CommunicationAction#toString#()Ljava/lang/String;
> ### 182: 
> org/dyndns/soundi/portals/interfaces/CommunicationAction#toString#()Ljava/lang/String;
> ### 183: java/util/Hashtable#<init>#()V
> ### 182: 
> java/util/Dictionary#put#(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
> ### 182: java/lang/Class#getName#()Ljava/lang/String;
> ### 182: java/lang/Class#getName#()Ljava/lang/String;
> ### 185: 
> org/osgi/framework/BundleContext#registerService#([Ljava/lang/String;Ljava/lang/Object;Ljava/util/Dictionary;)L
> org/osgi/framework/ServiceRegistration;
> ### 184: 
> org/dyndns/soundi/utils/Util#sendMessage#(Lorg/dyndns/soundi/utils/Util$Component;Ljava/lang/String;)V
> @@@ 1: stop#(Lorg/osgi/framework/BundleContext;)V#null~[java/lang/Exception]
> @@@ 0: <init>#(Lorg/osgi/framework/BundleContext;)V#null~null
> ### 183: java/lang/Object#<init>#()V
> @@@ 1: 
> play#(Ljava/io/InputStream;Lorg/dyndns/soundi/portals/interfaces/Song;)V#null~null
> ### 184: 
> javax/sound/sampled/AudioSystem#getAudioFileTypes#()[Ljavax/sound/sampled/AudioFileFormat$Type;
> ### 182: 
> javax/sound/sampled/AudioFileFormat$Type#getExtension#()Ljava/lang/String;
> ### 182: java/io/PrintStream#println#(Ljava/lang/String;)V
> ### 183: java/io/BufferedInputStream#<init>#(Ljava/io/InputStream;)V
> ### 184: 
> javax/sound/sampled/AudioSystem#getAudioInputStream#(Ljava/io/InputStream;)Ljavax/sound/sampled/AudioInputStrea
> m;
> ### 182: java/lang/Class#getName#()Ljava/lang/String;
> ### 184: 
> java/util/logging/Logger#getLogger#(Ljava/lang/String;)Ljava/util/logging/Logger;
> ### 182: 
> java/util/logging/Logger#log#(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
> ### 182: java/lang/Class#getName#()Ljava/lang/String;
> ### 184: 
> java/util/logging/Logger#getLogger#(Ljava/lang/String;)Ljava/util/logging/Logger;
> ### 182: 
> java/util/logging/Logger#log#(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
> ### 182: 
> javax/sound/sampled/AudioInputStream#getFormat#()Ljavax/sound/sampled/AudioFormat;
> ### 182: javax/sound/sampled/AudioFormat#getSampleRate#()F
> ### 182: javax/sound/sampled/AudioFormat#getChannels#()I
> ### 182: javax/sound/sampled/AudioFormat#getChannels#()I
> ### 182: javax/sound/sampled/AudioFormat#getSampleRate#()F
> ### 183: 
> javax/sound/sampled/AudioFormat#<init>#(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
> ### 184: 
> javax/sound/sampled/AudioSystem#getAudioInputStream#(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/Audi
> oInputStream;)Ljavax/sound/sampled/AudioInputStream;
> ### 183: 
> org/dyndns/soundi/soundboxplayerengine/DefaultPlayerEngine#rawplay#(Ljavax/sound/sampled/AudioFormat;Ljavax/sou
> nd/sampled/AudioInputStream;Lorg/dyndns/soundi/portals/interfaces/Song;)V
> @@@ 1: pause#()V#null~null
> @@@ 1: stop#()V#null~null
> @@@ 1: handleEvent#(Lorg/osgi/service/event/Event;)V#null~null
> @@@ 2: 
> rawplay#(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/AudioInputStream;Lorg/dyndns/soundi/portals/interf
> aces/Song;)V#null~null
> ### 183: 
> org/dyndns/soundi/soundboxplayerengine/DefaultPlayerEngine#getLine#(Ljavax/sound/sampled/AudioFormat;)Ljavax/so
> und/sampled/SourceDataLine;
> ### 185: javax/sound/sampled/SourceDataLine#start#()V
> ### 185: javazoom/spi/PropertiesContainer#properties#()Ljava/util/Map;
> ### 185: java/util/Map#get#(Ljava/lang/Object;)Ljava/lang/Object;
> ### 182: java/lang/Long#longValue#()J
> ### 185: java/util/Map#get#(Ljava/lang/Object;)Ljava/lang/Object;
> ### 182: java/lang/Long#longValue#()J
> ### 182: javax/sound/sampled/AudioInputStream#read#([BII)I
> ### 185: javax/sound/sampled/SourceDataLine#write#([BII)I
> ### 185: javax/sound/sampled/SourceDataLine#drain#()V
> ### 185: javax/sound/sampled/SourceDataLine#stop#()V
> ### 185: javax/sound/sampled/SourceDataLine#close#()V
> ### 182: java/lang/Exception#printStackTrace#()V
> @@@ 2: 
> getLine#(Ljavax/sound/sampled/AudioFormat;)Ljavax/sound/sampled/SourceDataLine;#null~[javax/sound/sampled/LineUna
> vailableException]
> ### 183: 
> javax/sound/sampled/DataLine$Info#<init>#(Ljava/lang/Class;Ljavax/sound/sampled/AudioFormat;)V
> ### 184: 
> javax/sound/sampled/AudioSystem#getLine#(Ljavax/sound/sampled/Line$Info;)Ljavax/sound/sampled/Line;
> ### 185: 
> javax/sound/sampled/SourceDataLine#open#(Ljavax/sound/sampled/AudioFormat;)V
> [PLAYERENGINE]: Default player engine registered!
> so it does *something*, but it looks like errors. I got a reply that this is 
> just debugging output and the functionality should work.
> But it does not. I wrote a little test in my playerengine bundle:
> Type[] audioFileTypes = AudioSystem.getAudioFileTypes();
>         for(Type a : audioFileTypes)
>         {
>             System.out.println(a.getExtension()); 
>         }
> if it would work, there should be:
> wav (provided by JRE)
> au (provided by JRE)
> aif (provided by JRE)
> mp3 (provided by mp3spi)
> but the last one is missing, i cannot play mp3s, i get an exception:
> 13.11.2011 09:23:05 
> org.dyndns.soundi.soundboxplayerengine.DefaultPlayerEngine play
> SCHWERWIEGEND: null
> javax.sound.sampled.UnsupportedAudioFileException: could not get audio input 
> stream from input stream
>         at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
>         at 
> org.dyndns.soundi.soundboxplayerengine.DefaultPlayerEngine.play(DefaultPlayerEngine.java:47)
>         at 
> org.dyndns.soundi.soundbox.core.gui.PlayerFrame.play(PlayerFrame.java:217)
>         at 
> org.dyndns.soundi.soundbox.core.gui.PlayerFrame.handleEvent(PlayerFrame.java:194)
>         at 
> org.apache.felix.eventadmin.impl.tasks.HandlerTaskImpl.execute(HandlerTaskImpl.java:88)
> maybe this is a bug? i'm not familiar with bytecode so i can't help nor go 
> deeper and check whats going on :(
> the complete framework with my bundles and asm/dynamic weaving (running 
> example) can be downloaded here (2.3mb):
> http://download.origo.ethz.ch/soundbox/3349/felix-framework-4.0.1.7z
> thanks in advance
> edit:
> to run the application:
> 1) java -jar bin\felix.jar 
>     then 2 windows should open 
>     wait a little bit until "Jamendo plugin initialized" appears
> 2) now go the textfield where "Enter a keyword..." stands 
>     enter something like "dire" and click on the "go" button
>     there should appear a list of songs in the table
> 3) click one so that it is marked and hit the button "add to player"
>     "add to player" tries to start the playback - the dynamic weaving happens 
> and the exception will be thrown
>  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to