Play an audio file in JSP or Servlet without asking to save

Hi,
I struck with one problem since so many days. My problem is, i am having stream content for ringtones to play in database. In servlet, i am setting the content type to *"audio/x-wav"* and writitng the response to the output stream by retrieving the streaming content from the database.
The problem is, with Internet Explorer it's a working beauty that it was playing in Windows Media Player without asking for saving. But, the problem is with Mozilla browser which was showing the save as dialog box which i couldn't do.
Is there any solution that i can play so that audio will be played without opening any player by default provided in the system or can i create a plugin for player in the server so that the player in the server will be opened and played without the need to search for players available in the system.
Please provide me the solution.

You need to embed an audio player in your JSP. You can use the HTML <object> tag for this.

Similar Messages

  • How to post an audio file in JSP or servlet

    Hi,
    I've loaded some rm files into the database. How do I retrieve and post it to the web using JSP or servlet page? How do I convert the ORDAUDIO to BLOB field? I went to the following example/demo:
    http://www.oracle.com/technology/sample_code/products/intermedia/index.html
    but didn't gain much help. Please provide me some sample codes using embeded tag. Thanks!
    Regards,
    Johnny

    I''l try again.....
    The response to your http page does not include media of any kind. The media is not part of your web response. It takes another request to get the media.
    Your embed tag, image tag, object tag, anchor tag only reference the media data. Typically , in the case of an image, by a relative URL.
    Your OrdAudio object can only provide the mimetype and other metadata when you are building your web page. You must have another endpoint to handle the delivery of binary media.
    A simple servlet is typically used, Consider the following servlet. It delivers a HTML form, or Image media, depending on what the request parameter "what" is set to. If "what" is set to "form", it delivers an HTTP form that references this same servlet, except that in the image tag "what" is set to image, where the image object is fetched, and the binary media delivered (with the right mimetype). Just change the Image stuff to audio, the html image tag to an anchor or embed tag, and something like this should work for audio as well.
    This is a bit better... , the <img src= is messed up, as are the <h1> tags...
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.sql.Types;
    import java.sql.PreparedStatement;
    import javax.servlet.ServletException;
    import javax.servlet.ServletConfig;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.naming.NamingException;
    import oracle.jdbc.OracleResultSet;
    import oracle.jdbc.pool.OracleConnectionPoolDataSource;
    import oracle.jdbc.pool.OraclePooledConnection;
    import oracle.jdbc.driver.OracleConnection;
    import oracle.ord.im.OrdImage;
    import oracle.ord.im.OrdHttpResponseHandler;
    import oracle.ord.im.OrdMultipartWrapper;
    public class deliveryServlet extends HttpServlet
        OracleConnection conn = null;
        String servletURL = null;
         * Servlet initialization method.
        public void init( ServletConfig config ) throws ServletException
            super.init(config);
         * Get a pooled database connection
        private void getPooledConnection() throws SQLException, NamingException
            javax.naming.InitialContext ic = new javax.naming.InitialContext();
            OracleConnectionPoolDataSource ds = (OracleConnectionPoolDataSource)
                    ic.lookup("jdbc/pool/OracleMediaPoolDS");
            OraclePooledConnection pc = (OraclePooledConnection)
                                     ds.getPooledConnection();
            conn = (OracleConnection)pc.getConnection();
            // conn.setAutoCommit(false); // just query. No need for this
         * Process an HTTP GET request used to deliver an image column
        public void doGet( HttpServletRequest request,
                            HttpServletResponse response )
            throws ServletException, IOException
          String id = request.getParameter( "id" );
          String what = request.getParameter( "what" );
          if (!"image".equalsIgnoreCase(what)) what = "form"; // set a default
          if ("form".equalsIgnoreCase(what))
         String servletURL = request.getRequestURL().toString();
            try
           if (conn == null) getPooledConnection();
              PrintWriter out = response.getWriter();
              response.setContentType( "text/html" );
              out.println( "<HTML><BODY>" +
             "<H1>Display Images</H1>" +
                "<FORM action=\"" + servletURL + "\">" +
                " Enter Row ID:<INPUT type=\"text\" name=\"id\" /><BR/>");
              if (id != null)
                PreparedStatement stmt =
                  conn.prepareStatement("select description, location, " +
                                               "thumb, image "+
                                      " from photos where id = ?" );
                stmt.setString( 1, id );
                OracleResultSet rset = (OracleResultSet)stmt.executeQuery();
                // Fetch the row from the result set.
                if ( rset.next() )
                  // Get columns from query
               String location = rset.getString(1);
               String description = rset.getString(2);
                  OrdImage thumb =
                     (OrdImage)rset.getORAData(3, OrdImage.getORADataFactory());
                  OrdImage img =
                     (OrdImage)rset.getORAData(4, OrdImage.getORADataFactory());
                  out.println("<B>Description: </B>" + description+ "<BR/>");
                  out.println("<B>Location: </B>" + location+ "<BR/>");
                  if (thumb != null && thumb.getMimeType().startsWith("image/"))
                    String thmbWidthStr =  thumb.getWidth() == 0 ? "" :
                                      "WIDTH=\"" + thumb.getWidth()  + "\" ";
                    String thmbHeightStr =  thumb.getHeight() == 0 ? "" :
                                      "HEIGHT=\"" + thumb.getHeight()  + "\" ";
                    out.println("<B>Thumbnail: </B>" +
                                "<IMG SRC=\"" + servletURL + "?id=" + id +
                                         "&what=image&col=thumb\" " +
                                         thmbWidthStr +
                                         thmbHeightStr +
                                 "/>" );
                  if (img != null && img.getMimeType().startsWith("image/"))
                    String imgWidthStr =  img.getWidth() == 0 ? "" :
                                      "WIDTH=\"" + img.getWidth()  + "\" ";
                    String imgHeightStr =  img.getHeight() == 0 ? "" :
                                      "HEIGHT=\"" + img.getHeight()  + "\" ";
                    out.println("<B>Image: </B>" +
                                "<IMG SRC=\"" + servletURL + "?id=" + id +
                                         "&what=image&col=image\" " +
                                         imgWidthStr +
                                         imgHeightStr +
                                 "/>" );
                else
                  // Print not found
                  out.println("<H2>Row with ID\"" + id + "\" Not Found</H2><BR/>");
              out.println("</FORM></BODY></HTML>");
            catch (Exception e)
           conn  = null; // Get another connection next time.
              throw new ServletException(e);
          else
            try
           if (conn == null) getPooledConnection();
              String col = request.getParameter("col");
              if (col == null) col = "thumb"; // default to the thumbnail column
              PreparedStatement stmt =
                conn.prepareStatement( "select " + col +
                                       " from photos where id = ? " );
              stmt.setString( 1, id );
              OracleResultSet rset = (OracleResultSet)stmt.executeQuery();
              // Fetch the row from the result set.
              if ( rset.next() )
                // Get the OrdImage object from the result set.
                OrdImage img =
                     (OrdImage)rset.getORAData(1, OrdImage.getORADataFactory());
                // Create an OrdHttpResponseHandler object, then use it to retrieve
                // the image from the database and deliver it to the browser.
                OrdHttpResponseHandler handler =
                    new OrdHttpResponseHandler( request, response );
                handler.sendImage( img );
              else
                // Row not found, return a suitable error.
                response.setStatus( response.SC_NOT_FOUND );
              // Close the result-set and the statement.
              rset.close();
              stmt.close();
            catch (Exception e)
           conn  = null; // Get another connection next time.
              throw new ServletException(e);

  • Jmf to play audio file in jsp

    hi,
    i am using jmf to play an audio file in jsp page.
    when i am trying in my computer it works.but when i am trying to access the application from other networked computer using the ip address,the audio can be hear only in the server system itself,not from where we have accessed the application and play the audio file.
    How can i resolve the issue?
    Thanks and Regards
    jai

    Jaisha wrote:
    ..i am using jmf to play an audio file in jsp page.Why JMF? Core Java has had the ability to play sound since J2SE 1.3, using [Java Sound|http://forums.sun.com/forum.jspa?forumID=541].
    when i am trying in my computer it works.but when i am trying to access the application from other networked computer using the ip address,the audio can be hear only in the server system itself,not from where we have accessed the application and play the audio file.I'm guessing you are a newbie to web development. To get the sound to play on the client, will require an applet or JWS launched application.
    How can i resolve the issue?Write an applet or JWS launched app.

  • Deploying a WAR file containing .jsp and servlets (also uses JNI)

    Deploying a WAR file containing .jsp and servlets (also uses JNI) on Windows 2000
    We had problems making it initially work on Sun ONE Web Server 6.0 Service Pack 1 because of lack of good iPlanet Web
    Server documentation on deploying such files.
    This is how we went about it:
    1) Make one of the servlet and JSP (must call another Java Class) web application (.war) examples work with iPlanet Web
    Server.
    C:\iPlanet\Servers\plugins\servlets\examples\web-apps\HelloWorld\HelloWorld.war
    and
    C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    a) Go to your Web Server Administration to deploy the application using GUI Web Application Deploy.
    (We usually use command line, we experienced some issues with the GUI version, but maybe it is fixed in the new Web Server
    service packs)
    From browser, open http://yourserver:8888/
    Click on Select a Server:Manage
    Click on Virtual Server Class
    Click on https-yourserver
    Click on the Web Applications Tab
    Then, click on Deploy Web Application
    Enter the following -
    WAR File On: Local
    WAR File Path: C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    Application URI: /jakarta
    Installation Directory: c:\iPlanet\examples\jakarta-examples
    By clicking on OK it deployed the application.
    I can verify that it is deployed by selecting "Edit Web Applications" and I see the following entry:
    Edit     /jakarta     c:/iPlanet/examples/jakarta-examples
    Also, c:/iPlanet/examples/jakarta-examples should have the similar following directory structure ..
    - [images]
    - [jsp]
    - index.html
    - [servlets]
    - [META-INF]
    - [WEB-INF]
    - [classes]
    - [tlds]
    - web.xml
    - index.html
    I restarted the server and accessed it using the following URL from my IE browser:
    http://yourserver/jakarta/index.html
    Then I clicked on the JSP Examples and tried some JSP examples.
    b) Alternatively, you can also deploy the same example from the command-line.
    Make sure C:\iPlanet\Servers\bin\https\httpadmin\bin\ is in your path
    wdeploy deploy      -u /jakarta
              -i yourserver
              -v https-yourserver
              -d c:\iplanet\examples\jakarta-examples
              C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    Restart the web server (I don't think you have to restart, but .. might as well).
    2)Deploy your web-application
    My Foo.war has the following structure.
    You can use jar tf Foo.war to look at the file contents from command line (assuming you have JDK installed and the bin is
    in your PATH)
    Foo.war
    - [META-INF]
    - [WEB-INF]
    - web.xml
    - [classes]
    - Bar.class
    - MoServlet.class
    - [lib]
    - ThirdParty.jar
    - [natlib]
    - extlib.dll
    - foo.jsp
    Here is our application scenario:
    foo.jsp uses a class call Bar (it is not in any package). The Bar java class uses classes from ThirdParty.jar. The
    ThirdParty.jar in turn uses JNI to load library extlib.dll. foo.jsp also calls /servlet/Mo as well.
    Now to deploy it, do the following:
    (a) Make sure that within foo.jsp, you import the Bar class ( I don't know why you have to do it, but if you don't you get
    JSP compile error).
    <%@page language="java" import="Bar" contentType="text/html"%>
    (b) Check web.xml (for Servlets)
    Within web.xml, make sure you have the following mappings:
    <servlet>
    <servlet-name> MoLink </servlet-name>
    <servlet-class> MoServlet </servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name> MoLink </servlet-name>
    <url-pattern> /servlet/Mo </url-pattern>
    </servlet-mapping>
    (c) Deploy the application
    Using command line:
    wdeploy deploy      -u /foo
              -i yourserver
              -v https-yourserver
              -d c:\iplanet\examples\foo-dir
              Foo.war
    (d) Change web-apps.xml file (for picking up ThirdParty.jar)
    It is located in
    C:\iPlanet\Servers\https-yourserver\config
    You should see something similar to following after successful deployment.
    <web-app uri="/foo" dir="C:\iPlanet\examples\foo-dir" enable="true"/>
    Change it to look like following to pick up the ThirdParty.jar
    <web-app uri="/foo" dir="C:\iPlanet\examples\foo-dir" enable="true">
    <class-loader reload-interval="300"
              classpath="C:/iPlanet/examples/foo-dir/WEB-INF/lib/ThirdParty.jar"
              delegate="false"/>
    </web-app>
    (e) Change jvm12.conf file (for JNI)
    It is located in
    C:\iPlanet\Servers\https-yourserver\config
    Add or uncomment the following lines:
    #optional - just helps with instrumenting the jsp and servlet code
    jvm.include.CLASSPATH=1
    jvm.enableDebug=1
    nes.jsp.enabledebug=1
    jvm.trace=7
    jvm.verboseMode=1
    #required for JNI
    java.compiler=NONE
    jvm.classpath=.;C:\JDK1.3.1\lib\tools.jar;C:/iPlanet/Servers/plugins/servlets/examples/legacy/beans.10/SDKBeans10.jar;
    jvm.option=-Xrs
    jvm.option=-Xnoagent
    # not sure if this is needed for iPlanet web server
    jvm.option=-Djava.library.path=C:/iPlanet/examples/foo-dir/natlib/ -Djava.compiler=NONE
    (f) Change magnus.conf file (for JNI)
    We HAD to change this file in order for ThirdParty.jar file to pick up the native C++ code using JNI. Apparently, the
    iPlanet Web Server doesn't pick the Environment Variable Path. Because when we had the directory containing the DLL just
    in Path, it didn't work.
    Change Extrapath directive:
    ExtraPath C:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH}
    to
    ExtraPath c:/iPlanet/examples/foo-dir/natlib;C:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH}
    (g) Apply changes from the Web Server Administration Console and Restart the web server.
    You should be able to see the behaviour that you want from your application.
    http://yourserver/foo/foo.jsp
    Hope this was helpful!!!
    Sonu

    Deploying a WAR file containing .jsp and servlets (also uses JNI) on Windows 2000
    We had problems making it initially work on Sun ONE Web Server 6.0 Service Pack 1 because of lack of good iPlanet Web
    Server documentation on deploying such files.
    This is how we went about it:
    1) Make one of the servlet and JSP (must call another Java Class) web application (.war) examples work with iPlanet Web
    Server.
    C:\iPlanet\Servers\plugins\servlets\examples\web-apps\HelloWorld\HelloWorld.war
    and
    C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    a) Go to your Web Server Administration to deploy the application using GUI Web Application Deploy.
    (We usually use command line, we experienced some issues with the GUI version, but maybe it is fixed in the new Web Server
    service packs)
    From browser, open http://yourserver:8888/
    Click on Select a Server:Manage
    Click on Virtual Server Class
    Click on https-yourserver
    Click on the Web Applications Tab
    Then, click on Deploy Web Application
    Enter the following -
    WAR File On: Local
    WAR File Path: C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    Application URI: /jakarta
    Installation Directory: c:\iPlanet\examples\jakarta-examples
    By clicking on OK it deployed the application.
    I can verify that it is deployed by selecting "Edit Web Applications" and I see the following entry:
    Edit     /jakarta     c:/iPlanet/examples/jakarta-examples
    Also, c:/iPlanet/examples/jakarta-examples should have the similar following directory structure ..
    - [images]
    - [jsp]
    - index.html
    - [servlets]
    - [META-INF]
    - [WEB-INF]
    - [classes]
    - [tlds]
    - web.xml
    - index.html
    I restarted the server and accessed it using the following URL from my IE browser:
    http://yourserver/jakarta/index.html
    Then I clicked on the JSP Examples and tried some JSP examples.
    b) Alternatively, you can also deploy the same example from the command-line.
    Make sure C:\iPlanet\Servers\bin\https\httpadmin\bin\ is in your path
    wdeploy deploy      -u /jakarta
              -i yourserver
              -v https-yourserver
              -d c:\iplanet\examples\jakarta-examples
              C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    Restart the web server (I don't think you have to restart, but .. might as well).
    2)Deploy your web-application
    My Foo.war has the following structure.
    You can use jar tf Foo.war to look at the file contents from command line (assuming you have JDK installed and the bin is
    in your PATH)
    Foo.war
    - [META-INF]
    - [WEB-INF]
    - web.xml
    - [classes]
    - Bar.class
    - MoServlet.class
    - [lib]
    - ThirdParty.jar
    - [natlib]
    - extlib.dll
    - foo.jsp
    Here is our application scenario:
    foo.jsp uses a class call Bar (it is not in any package). The Bar java class uses classes from ThirdParty.jar. The
    ThirdParty.jar in turn uses JNI to load library extlib.dll. foo.jsp also calls /servlet/Mo as well.
    Now to deploy it, do the following:
    (a) Make sure that within foo.jsp, you import the Bar class ( I don't know why you have to do it, but if you don't you get
    JSP compile error).
    <%@page language="java" import="Bar" contentType="text/html"%>
    (b) Check web.xml (for Servlets)
    Within web.xml, make sure you have the following mappings:
    <servlet>
    <servlet-name> MoLink </servlet-name>
    <servlet-class> MoServlet </servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name> MoLink </servlet-name>
    <url-pattern> /servlet/Mo </url-pattern>
    </servlet-mapping>
    (c) Deploy the application
    Using command line:
    wdeploy deploy      -u /foo
              -i yourserver
              -v https-yourserver
              -d c:\iplanet\examples\foo-dir
              Foo.war
    (d) Change web-apps.xml file (for picking up ThirdParty.jar)
    It is located in
    C:\iPlanet\Servers\https-yourserver\config
    You should see something similar to following after successful deployment.
    <web-app uri="/foo" dir="C:\iPlanet\examples\foo-dir" enable="true"/>
    Change it to look like following to pick up the ThirdParty.jar
    <web-app uri="/foo" dir="C:\iPlanet\examples\foo-dir" enable="true">
    <class-loader reload-interval="300"
              classpath="C:/iPlanet/examples/foo-dir/WEB-INF/lib/ThirdParty.jar"
              delegate="false"/>
    </web-app>
    (e) Change jvm12.conf file (for JNI)
    It is located in
    C:\iPlanet\Servers\https-yourserver\config
    Add or uncomment the following lines:
    #optional - just helps with instrumenting the jsp and servlet code
    jvm.include.CLASSPATH=1
    jvm.enableDebug=1
    nes.jsp.enabledebug=1
    jvm.trace=7
    jvm.verboseMode=1
    #required for JNI
    java.compiler=NONE
    jvm.classpath=.;C:\JDK1.3.1\lib\tools.jar;C:/iPlanet/Servers/plugins/servlets/examples/legacy/beans.10/SDKBeans10.jar;
    jvm.option=-Xrs
    jvm.option=-Xnoagent
    # not sure if this is needed for iPlanet web server
    jvm.option=-Djava.library.path=C:/iPlanet/examples/foo-dir/natlib/ -Djava.compiler=NONE
    (f) Change magnus.conf file (for JNI)
    We HAD to change this file in order for ThirdParty.jar file to pick up the native C++ code using JNI. Apparently, the
    iPlanet Web Server doesn't pick the Environment Variable Path. Because when we had the directory containing the DLL just
    in Path, it didn't work.
    Change Extrapath directive:
    ExtraPath C:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH}
    to
    ExtraPath c:/iPlanet/examples/foo-dir/natlib;C:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH}
    (g) Apply changes from the Web Server Administration Console and Restart the web server.
    You should be able to see the behaviour that you want from your application.
    http://yourserver/foo/foo.jsp
    Hope this was helpful!!!
    Sonu

  • Playing an audio file from applet

    Hi friends,
    I have a problem to be solved .
    Please help me.
    I have to play an audio file from applet.When the applet loads it shold start playing .There is a progress bar in the applet it shold alsomove corresponding to that.
    How can i do that.Give me an idea.
    I know nothing about jmf.
    I am using j2sdk1.4,windows 2000 server.

    Andrew,
    Forgive my naivety, but i struggle with JAVA! I am desperately trying to create a JAVA plugin to SERVOY and have to date been successful with a few things. Record, Playback, convert to .spx.
    I am really struggling with implementing a rewind and fastforward function of the type you have. I thought it would be easy, but it appears not.
    At the bottom is the complete code from my class that is called by the servoy plugin wrapper,
    i had thought that adding some simple jump 500 ms would have been easy in something like this:
    public AudioStream js_FastForward (AudioStream as) throws IOException {
    !!! Line or two here to move the play head forward !!!
         AudioPlayer.player.start(as);
         return as;
    Can you give me any pointers to how i code that fast forward bit.
    many thanks
    David
    package com.d2e.MyPlugin;
    import com.servoy.j2db.scripting.IScriptObject;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.awt.Button;
    import javax.sound.sampled.*;
    import org.xiph.speex.*;
    import org.xiph.speex.spi.*;
    import  sun.audio.*;    //import the sun.audio package
    public class MyPluginProvider implements IScriptObject  {
          public void JSencode()
             throws IOException{
               /** Version of the Speex Encoder */
                final String VERSION = "Java Speex Command Line Encoder v0.9.7 ($Revision: 1.5 $)";
                /** Copyright display String */
                final String COPYRIGHT = "Copyright (C) 2002-2004 Wimba S.A.";
                /** Print level for messages : Print debug information */
                final int DEBUG = 0;
                /** Print level for messages : Print basic information */
                final int INFO  = 1;
                /** Print level for messages : Print only warnings and errors */
                final int WARN  = 2;
                /** Print level for messages : Print only errors */
                final int ERROR = 3;
                int printlevel = INFO;
                /** File format for input or output audio file: Raw */
                final int FILE_FORMAT_RAW  = 0;
                /** File format for input or output audio file: Ogg */
                final int FILE_FORMAT_OGG  = 1;
                /** File format for input or output audio file: Wave */
                final int FILE_FORMAT_WAVE = 2;
                int srcFormat  = FILE_FORMAT_OGG;
                int destFormat = FILE_FORMAT_WAVE;
                int mode       = -1;
                int quality    = 4;
                /** Defines the encoders algorithmic complexity. */
                 int complexity = 3;
                /** Defines the number of frames per speex packet. */
                 int nframes    = 1;
                /** Defines the desired bitrate for the encoded audio. */
                 int bitrate    = -1;
                /** Defines the sampling rate of the audio input. */
                 int sampleRate = -1;
                /** Defines the number of channels of the audio input (1=mono, 2=stereo). */
                 int channels   = 1;
                /** Defines the encoder VBR quality setting (float from 0 to 10). */
                 float vbr_quality = -1;
                /** Defines whether or not to use VBR (Variable Bit Rate). */
                 boolean vbr    = false;
                /** Defines whether or not to use VAD (Voice Activity Detection). */
                 boolean vad    = false;
                /** Defines whether or not to use DTX (Discontinuous Transmission). */
                 boolean dtx    = false;
              //HArd code src format and dest
               // private String srcPath ="junk.wav";
              srcFormat = FILE_FORMAT_WAVE;
              destFormat = FILE_FORMAT_OGG;
              //destPath="junk.spx";
             byte[] temp    = new byte[2560]; // stereo UWB requires one to read 2560b
             final int HEADERSIZE = 8;
             final String RIFF      = "RIFF";
             final String WAVE      = "WAVE";
             final String FORMAT    = "fmt ";
             final String DATA      = "data";
             final int WAVE_FORMAT_PCM = 0x0001;
             // Open the input stream
             DataInputStream dis = new DataInputStream(new FileInputStream("junk.wav"));
             // Prepare input stream
           //DP - Sort out the Wave File
               // read the WAVE header
               dis.readFully(temp, 0, HEADERSIZE+4);
               // Read other header chunks
               dis.readFully(temp, 0, HEADERSIZE);
               String chunk = new String(temp, 0, 4);
               int size = readInt(temp, 4);
               while (!chunk.equals(DATA)) {
                 dis.readFully(temp, 0, size);
                 if (chunk.equals(FORMAT)) {
                   typedef struct waveformat_extended_tag {
                   WORD wFormatTag; // format type
                   WORD nChannels; // number of channels (i.e. mono, stereo...)
                   DWORD nSamplesPerSec; // sample rate
                   DWORD nAvgBytesPerSec; // for buffer estimation
                   WORD nBlockAlign; // block size of data
                   WORD wBitsPerSample; // Number of bits per sample of mono data
                   WORD cbSize; // The count in bytes of the extra size
                   } WAVEFORMATEX;
                   if (readShort(temp, 0) != WAVE_FORMAT_PCM) {
                     System.err.println("Not a PCM file");
                     return;
                   channels = readShort(temp, 2);
                   sampleRate = readInt(temp, 4);
                   if (readShort(temp, 14) != 16) {
                     System.err.println("Not a 16 bit file " + readShort(temp, 18));
                     return;
                   // Display audio info
                   if (printlevel <= DEBUG) {
                     System.out.println("File Format: PCM wave");
                     System.out.println("Sample Rate: " + sampleRate);
                     System.out.println("Channels: " + channels);
                 dis.readFully(temp, 0, HEADERSIZE);
                 chunk = new String(temp, 0, 4);
                 size = readInt(temp, 4);
               if (printlevel <= DEBUG) System.out.println("Data size: " + size);
           //DP ENd sort wave file 
           //Now Choose the mode , we have a file sampled at 44100
                 mode = 2; // Ultra-wideband
             // Construct a new encoder
             SpeexEncoder speexEncoder = new SpeexEncoder();
             speexEncoder.init(mode, quality, sampleRate, channels);
             if (complexity > 0) {
               speexEncoder.getEncoder().setComplexity(complexity);
             if (bitrate > 0) {
               speexEncoder.getEncoder().setBitRate(bitrate);
             if (vbr) {
               speexEncoder.getEncoder().setVbr(vbr);
               if (vbr_quality > 0) {
                 speexEncoder.getEncoder().setVbrQuality(vbr_quality);
             if (vad) {
               speexEncoder.getEncoder().setVad(vad);
             if (dtx) {
               speexEncoder.getEncoder().setDtx(dtx);
             // Display info
             // Open the file writer
             AudioFileWriter writer;
             if (destFormat == FILE_FORMAT_OGG) {
               writer = new OggSpeexWriter(mode, sampleRate, channels, nframes, vbr);
             else if (destFormat == FILE_FORMAT_WAVE) {
               nframes = PcmWaveWriter.WAVE_FRAME_SIZES[mode-1][channels-1][quality];
               writer = new PcmWaveWriter(mode, quality, sampleRate, channels, nframes, vbr);
             else {
               writer = new RawWriter();
             writer.open("junk.spx");
             writer.writeHeader("Encoded with: " + VERSION);
             int pcmPacketSize = 2 * channels * speexEncoder.getFrameSize();
             try {
               // read until we get to EOF
               while (true) {
                 dis.readFully(temp, 0, nframes*pcmPacketSize);
                 for (int i=0; i<nframes; i++)
                   speexEncoder.processData(temp, i*pcmPacketSize, pcmPacketSize);
                 int encsize = speexEncoder.getProcessedData(temp, 0);
                 if (encsize > 0) {
                   writer.writePacket(temp, 0, encsize);
             catch (EOFException e) {}
             writer.close();
             dis.close();
            * Converts Little Endian (Windows) bytes to an int (Java uses Big Endian).
            * @param data the data to read.
            * @param offset the offset from which to start reading.
            * @return the integer value of the reassembled bytes.
           protected static int readInt(final byte[] data, final int offset)
             return (data[offset] & 0xff) |
                    ((data[offset+1] & 0xff) <<  8) |
                    ((data[offset+2] & 0xff) << 16) |
                    (data[offset+3] << 24); // no 0xff on the last one to keep the sign
            * Converts Little Endian (Windows) bytes to an short (Java uses Big Endian).
            * @param data the data to read.
            * @param offset the offset from which to start reading.
            * @return the integer value of the reassembled bytes.
           protected static int readShort(final byte[] data, final int offset)
             return (data[offset] & 0xff) |
                    (data[offset+1] << 8); // no 0xff on the last one to keep the sign
         AudioFormat audioFormat;
           TargetDataLine targetDataLine;
         public Class[] getAllReturnedTypes() {
              // TODO Auto-generated method stub
              return null;
         public String[] getParameterNames(String arg0) {
              // TODO Auto-generated method stub
              return null;
         public String getSample(String arg0) {
              // TODO Auto-generated method stub
              return null;
         public String getToolTip(String arg0) {
              // TODO Auto-generated method stub
              return null;
         public boolean isDeprecated(String arg0) {
              // TODO Auto-generated method stub
              return false;
         public String js_Record (String name){
              captureAudio();
              return "Started Recording " +name;
        public String js_StopRecord (String name) throws IOException{
             //new ActionListener(){
             //   public void actionPerformed(ActionEvent e)
                  //Terminate the capturing of input data
                  // from the microphone.
                  targetDataLine.stop();
                  targetDataLine.close();
              //  }//end actionPerformed
             //};//end ActionListener
                 // JSpeexEnc ("junk.wav","output.spx");
                  JSencode();
              return "Stop Records " +name;
        //Play audio file
        public AudioStream js_Playback (String name) throws IOException{
             InputStream in = new FileInputStream("junk.wav");
             AudioStream as = new AudioStream(in);        
             AudioPlayer.player.start(as);           
             return as;
        public AudioStream js_ContPlay (AudioStream as) throws IOException {
             AudioPlayer.player.start(as);           
             return as;
         //Stop Play
        public AudioStream js_Stop_Playback (AudioStream as) throws IOException{
             AudioPlayer.player.stop(as);
              return as;
         //This method captures audio input from a
        // microphone and saves it in an audio file.
        private void captureAudio(){
          try{
            //Get things set up for capture
            audioFormat = getAudioFormat();
            DataLine.Info dataLineInfo =
                                new DataLine.Info(
                                  TargetDataLine.class,
                                  audioFormat);
            targetDataLine = (TargetDataLine)
                     AudioSystem.getLine(dataLineInfo);
            //Create a thread to capture the microphone
            // data into an audio file and start the
            // thread running.  It will run until the
            // Stop button is clicked.  This method
            // will return after starting the thread.
            new CaptureThread().start();
          }catch (Exception e) {
            e.printStackTrace();
            System.exit(0);
          }//end catch
        }//end captureAudio method  
    //  This method creates and returns an
        // AudioFormat object for a given set of format
        // parameters.  If these parameters don't work
        // well for you, try some of the other
        // allowable parameter values, which are shown
        // in comments following the declarations.
        private AudioFormat getAudioFormat(){
          float sampleRate = 44100.0F;
          //8000,11025,16000,22050,44100
          int sampleSizeInBits = 16;
          //8,16
          int channels = 1;
          //1,2
          boolean signed = true;
          //true,false
          boolean bigEndian = true;
          //true,false
          return new AudioFormat(sampleRate,
                                 sampleSizeInBits,
                                 channels,
                                 signed,
                                 bigEndian);
        }//end getAudioFormat
        class CaptureThread extends Thread{
               public void run(){
                 AudioFileFormat.Type fileType = null;
                 File audioFile = null;
                 //Set the file type and the file extension
                 // based on the selected radio button.
                 //if(aifcBtn.isSelected()){
                  // fileType = AudioFileFormat.Type.AIFC;
                  // audioFile = new File("junk.aifc");
                // }else if(aiffBtn.isSelected()){
                 //  fileType = AudioFileFormat.Type.AIFF;
                 //  audioFile = new File("junk.aif");
                // }else if(auBtn.isSelected()){
                 //  fileType = AudioFileFormat.Type.AU;
                 //  audioFile = new File("junk.au");
                // }else if(sndBtn.isSelected()){
                //   fileType = AudioFileFormat.Type.SND;
                 //  audioFile = new File("junk.snd");
                // }else if(waveBtn.isSelected()){
                 fileType = AudioFileFormat.Type.WAVE;
                 audioFile = new File("junk.wav");
                // }//end if
                 try{
                   targetDataLine.open(audioFormat);
                   targetDataLine.start();
                   AudioSystem.write(
                         new AudioInputStream(targetDataLine),
                         fileType,
                         audioFile);
                 }catch (Exception e){
                   e.printStackTrace();
                 }//end catch
               }//end run
             }//end inner class CaptureThread
    }

  • Playing the audio file from the point of mark

    Hi All, i want to play a audio file from the point of mark.
    i have used mark() method to mark but when i play the audio it is still playing the audio from the starting point. please help me.

    Hi,
    Question:
    1. You have a folder for each DVD whose video contents you edited.
    Answer: Yes
    Question:
    You talk about projects 34, 35, 36, 37. Are these projects associated with only one specific DVD?
    What is supposed to be in each project - just edited VTS_01_1.VOB or edits from the others in the series
    such as VTS_01_2.VOB, VTS_01_3.VOB, etc.
    Answer:
    Project 34 has edited Premiere Elements file 34 and the VOB files (VST_01_1.VOB, VTS_01_2.VOB, etc) from DVD#34
    Project 35 has edited Premiere Elements file 35 and the VOB files (VST_01_1.VOB, VTS_01_2.VOB, etc) from DVD#35
    Project 36 has edited Premiere Elements file 36 and the VOB files (VST_01_1.VOB, VTS_01_2.VOB, etc) from DVD#36
    etc.
    Question:
    2. If you screen each DVD video file VOB for a given DVD disc, does the content follow sequentially and cleanly?
    Answer:
    Yes
    When I run the VST_01_1.VOB, VTS_01_2.VOB, etc from each project the audio and the video are clean and match.
    When I run the edited Premiere Elements file that were created after project 34 edited Premiere Elements file project 35, 36, 37 etc. I am getting the audio from project 34
    When I run the edited Premiere Elements file that were created  before project 34 edited Premiere Elements file project 1, 2, all the way to 33. I am getting the correct audio
    Thanks,
    Ron

  • Playing an audio file in a certain location

    Hi Everyone...
    I would like to play an audio file (edc.caf) that is located in this directory....
    /DCIM/TONY/IOW/AUDIO
    When i run it through the NSURL processor....
    [code]
    NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
    [code]
    the resulting value of soundFileURL is
    file://localhost/DCIM/TONY/IOW/AUDIO/edc.caf
    But i do not hear any audio out of the iPod touch.
    I've tried two different methods of playing the audio,
    and both are failing.
    I know the audio is being recorded, as i can bring it back to the PC and play them fine.
    My initial thoughts are that i cannot find location of the file, but i am not sure.
    Can anyone confirm the location is correct???
    thanks
    tony

    Small edit....
    the resulting value is a little different than what i posted....
    the actual string is...
    file://localhost/var/mobile/Media/DCIM/TONY/AUDIO/edc.caf
    Sorry about the confusion

  • Help me play an audio file in my GUI

    Hi
    I've been having some trouble getting code to play an audio file in my GUI
    Basically all I want to do is play a file in the same directory as the program, and have it loop. No controls, no buttons to change the play state.
    Could someone point me to or help me implement this with some example code? I'm really stuck and I'm just not sure how to implement it into the existing GUI class.
    Thanks for any help

    Hi
    I've done so, and the method gets called without any problems, but doesnt play anything.
    Have a look -
    public void audioFile()
        try {
            // From file
            AudioInputStream stream = AudioSystem.getAudioInputStream(new File("test.wav"));
            // From URL
            //stream = AudioSystem.getAudioInputStream(new URL("http://hostname/audiofile"));
            // At present, ALAW and ULAW encodings must be converted
            // to PCM_SIGNED before it can be played
            AudioFormat format = stream.getFormat();
            if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
                format = new AudioFormat(
                        AudioFormat.Encoding.PCM_SIGNED,
                        format.getSampleRate(),
                        format.getSampleSizeInBits()*2,
                        format.getChannels(),
                        format.getFrameSize()*2,
                        format.getFrameRate(),
                        true);        // big endian
                stream = AudioSystem.getAudioInputStream(format, stream);
            // Create the clip
            DataLine.Info info = new DataLine.Info(
                Clip.class, stream.getFormat(), ((int)stream.getFrameLength()*format.getFrameSize()));
            Clip clip = (Clip) AudioSystem.getLine(info);
            // This method does not return until the audio file is completely loaded
            clip.open(stream);
            // Start playing
            clip.start();
        } catch (MalformedURLException e) {
        } catch (IOException e) {
        } catch (LineUnavailableException e) {
        } catch (UnsupportedAudioFileException e) {
    }

  • Is it possible to play an audio file out of labview (using myDAQ)?

    Hi all,
    I am using a myDAQ (first time). I am trying to play an audio file at a certain time in my VI.
    All the examples I have seen use the audio in and then play out of the audio out port. Is it not possible to simply find the file location and then play it out of the audio out under the given conditions in the VI or even import the sound? I am not trying to play large files or large quantities such as songs. I only want a congratulatory sound when the task is complete (2/3s).
    Any help would be is appreciated (even to say it isn't possible!)
    Cheers 
    Solved!
    Go to Solution.

    Why no just play a WAV file? Use Play Sound File.vi as shown here.
    Richard

  • Is it possible to play two audio files simultaneously.

    Hi,
    Is it possible to play two audio files simultaneously.
    I modified the 'SpeakHere' to play two audio files simultaneously, it worked perfectly on simulator but get hanged on iphone.
    To this I implemented NSTimer, which regularly checks for both player instance every second.As soon as any player gets stopped Timer task stops the second one forcefully and again starts both.
    thanks.

    Hi Jay
    Do you have the eLearning Suite? If so, you have Adobe Presenter available to you. If you don't, you should be able to download the Presenter installation file and evaluate it.
    Presenter is an add in for PowerPoint. The neat thing about it is that it provides for a Table of Contents type of functionality as you see is configured in Captivate. But the twist with that is you are able to do something you cannot do in Captivate. You are able to insert videos inside the TOC area!
    Just musing out loud... Rick
    Helpful and Handy Links
    Captivate Wish Form/Bug Reporting Form
    Adobe Certified Captivate Training
    SorcerStone Blog
    Captivate eBooks

  • Play an audio file over HTTP

    Hello everybody,
    I'm trying to play an audio file over HTTP protocol. The code is the following:
    public class HTTPClientJMF {
         static String url = "http://localhost/audio/Reklam1.wav";
         static String urlFile = "file:///C://tmp/audio/Reklam1.wav";
          * @param args
         public static void main(String[] args) {
              // TODO Auto-generated method stub
              try {
                   DataSource dataS = new URLDataSource(new URL(url));
                   dataS.connect();               
                   Player player = Manager.createPlayer(dataS);
                   player.start();
              } catch (MalformedURLException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (IOException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (NoPlayerException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
    }Now, if I'm trying to play the file from the local disk (+urlFile+ - using file protocol), everything goes well, but if I'm trying to play the same file from the network (using http protocol) I get the following exception:
    javax.media.NoPlayerException: Cannot find a Player for: javax.media.protocol.URLDataSource@fa9cf
    Can somebody tell me what I'm doing wrong?
    Thank you!

    Ah',..okay. I constructed the DataSource like follows:
    Buffer mediaBuffer = new Buffer();;
              String mediaURL = "http://ares.inescn.pt/video/Reklam1.wav";
              URL url;
              try {
                   url = new URL(mediaURL );
                   InputStream in = url.openStream();
                   BufferedInputStream bufIn = new BufferedInputStream(in);
                   for (;;) {
                        int data = bufIn.read();
                        // Check for EOF
                        if (data == -1)
                             break;
                        else
                             mediaBuffer.setData(data);
                   System.out.println(mediaBuffer.getLength());
                   if (mediaBuffer.getLength() != 0) {
                        DataSource ds = new DataSource();
                        HttpStream[] httpStream = ds.getStreams();
                        System.out.println(httpStream.length);
                        httpStream[0].read(mediaBuffer);
                        ds.connect();
                        ds.start();                         
                        Player player = Manager.createPlayer(ds);
                        player.start();But I still cannot play an audio file (wav format) over the HTTP. Application starts but nothing happened.
    I make the modification like you suggested. (into the DataSource, more exactly for method getStreams()).
    I renamed as well the HttpDatasource into HttpStream.
    Did you actually tried the code? I've been reading the instruction how to test the code but I did not be able to run the example.

  • How do I play an audio file as a soundtrack for entire keynot

    How do I play an audio file as a soundtrack for entire keynote?

    https://developer.apple.com/mac/library/samplecode/PlayFile/Introduction/Intro.h tml
    Docs are your friend....mac os has it's own just like iPhone.

  • Is possible to play .amr audio files on Nokia Lumi...

    Is possible to play .amr audio files on Nokia Lumia 800? Thank you.

    Hi,
    The Lumia, being a Windows Phone, supports these audio formats;
    AAC, AMR-NB, AMR-WB, HE-AAC v1, HE-AAC v2, M4A, MP3, WAV, WMA 10 Pro, WMA 9
    So yes, AMR is supported.
    Press the 'Accept As Solution' icon if I have solved your problem, click on the Star Icon below if my advice has helped you!

  • How do i play multiple audio files simultaneously using AudioQueue?

    I've basically gutted what I don't need from the "Speakhere" sample app and I'm left with something I can use to play audio files. I converted wav files to aiff and then renamed the aiff to caf (Just in case this matters). I even tried shortening the files to 10 seconds long, but no difference. I am able to play files singly, but am unable to play more than one file at the same time. When I try to play multiple files, the first one plays correctly but the second will play a horrible long beeping sound. Sounds almost like a buzzer and sometimes will sound like a high pitched beep. My code has all the audio components like the speakhere app (AudioQueueObject, AudioPlayer, AudioViewController). I've changed the AudioViewController to be just my "AudioController" class where when I initialize, I pass in the name of the file and it replaces this line of code:
    CFStringRef fileString = (CFStringRef) [NSString stringWithFormat: @"%@/Recording.caf", self.recordingDirectory];
    with this:
    CFStringRef fileString = (CFStringRef) [NSString stringWithFormat: fileName, self.recordingDirectory];
    Any suggestions? I've been yanking my hair out trying to figure this out and I simply can't. I'm about ready to pull an "Office Space" but instead of beating up a printer, I'm going to destroy my macbook.
    *NOTE: I have only tried this in the simulator, but I'm assuming it will do this on the real thing so I haven't bothered to try.

    Unless I'm mistaken, you need one AudioQueue object for each audio file you want to play. In one of my apps, I basically copied the code provided in the [AudioQueue programming guide|http://developer.apple.com/iphone/library/documentation/MusicAudio/Concep tual/AudioQueueProgrammingGuide/AQPlayback/chapter4_section_1.html#//appleref/doc/uid/TP40005343-CH3-SW1] and made a wrapper object for playback. So then you can do something like this:
    MyAudioManager *manager1 = [[MyAudioManager alloc] initWithFile:@"file1.caf"];
    [manager1 play];
    MyAudioManager *manager2 = [[MyAudioManager alloc] initWithFile:@"file2.caf"];
    [manager2 play];
    // etc...
    If you want to play short files (~10s or less), you can use the simpler AudioServices functions along with SystemSoundID's. It will work fine if you have playback from AudioQueue and AudioServices at the same time.

  • HT3775 How can I play an audio file in 3GP format?

    Hi,
    I have an audio file in 3GP format, which was recorded in a mobile phone and transferred to me.
    I am not able to play it using QuickTim and VLC Player.
    Can someone please help me how to play this?
    Regards
    Sharath Arun

    Is that file played in a tab in the current window or in a separate pop-up window?
    Are you allowing pop-up to modify the window size (dom.disable_window_move_resize = false)?
    *http://kb.mozillazine.org/JavaScript#Advanced_JavaScript_settings
    You can try set the Boolean pref <b>media.windows-media-foundation.enabled</b> to <i>false</i> on the <b>about:config</b> page to disable the built-in HTML5 media player.
    *http://kb.mozillazine.org/about:config

Maybe you are looking for

  • Erro CX_ST_MATCH_ELEMENT no PI após implementação do SP06

    Pessoal, Após a implementação do SP06 do GRC (a versão anterior era a SP03), não estamos conseguindo mais ter as aprovações das notas. O processo para no GRC durante a assinatura da nota, mais especificamente após a execução da SENDER INTERFACE SIGNN

  • Time Machine Back-up from External Hard Drive

    Time Machine only back-up what is on my MBP Drive, Can I back-up files from an external usb drive that is connected to MBP to TM??? if no what is a good back-up software to use???? Thanks.

  • TV formats

    Sorry for repeat post, my heading was misleading. Choosing export settings for TV is doing my head in. I have a substantial home movie library which consists of .dv files which I had also encoded as AVC in a .mov format using QT Pro. Just before the

  • Data Controls Missing From View Controller Tab

    Good Afternoon, I have researched for hours over the internet and this forum but have not found an answer. My problem is this: I am using JDeveloper Studio Edition Version 11.1.2.1.0. In my ViewController project no Data Controls are displayed in the

  • Configuration of  'object & data provider' in MSS

    Hi Gurus, Can some body please explain the steps on how to config 'object & data provider' in MSS ? or may be share a document if any body has ? Thanks in advance.        Srinivas