⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 constructstreamingsounds.java

📁 利用opensource的开源jar实现生成flash文件
💻 JAVA
字号:
/*
 *  StreamingSounds.java
 *  Examples
 *
 *  Created by Stuart MacKay on Fri Jun 06 2003.
 *  Copyright (c) 2001-2004 Flagstone Software Ltd. All rights reserved.
 *
 *  This code is distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, 
 *  EITHER EXPRESS OR IMPLIED, AND Flagstone HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
 *  INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR 
 *  A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
 */
package com.flagstone.transform.examples;

import com.flagstone.transform.*;
import com.flagstone.transform.util.*;

import java.io.*;

/*
 * This example shows how the FSSoundConstructor class can be used to generate
 * the objects used to play streaming sounds in a movie.
 *
 * For an example of how to play a sound in response to a button being clicked see
 * the Buttons example.
 *
 * To run this example, type the following on a command line:
 *
 *     java com.flagstone.transform.examples.ConstructStreamingSounds 
 *         --file sound-file [--resultDir path]
 *
 * where
 *
 *     sound-file is the path to a file containing a WAVE or MP3 format sound.
 *
 *     resultDir is the directory where the Flash file generated by the example 
 *     is written to.
 *
 */
public class ConstructStreamingSounds extends Example
{
    private FSSoundConstructor soundGenerator = null;

    public static void main(String[] args)
    {
        new ConstructStreamingSounds(args);
    }

    public ConstructStreamingSounds(String[] args)
    {
        super(args);
    
        String soundFile = getOption("file", "");
            
        /* Create the name of the Flash file generated using the name of the 
         * sound file - replaciing the file extension with '.swf'.
         */
        int first = soundFile.lastIndexOf(File.separatorChar);
        int last = soundFile.lastIndexOf('.');
        
        String fileOut = soundFile.substring(first, last) + ".swf";
    
        try 
        {
            soundGenerator = new FSSoundConstructor(soundFile);
        }
        catch (Exception e)
        {
            /* Several exceptions could be thrown to get to this point. The 
             * FSSoundConstructor will throw a FileNotFoundException, IOException 
             * or DataFormatException if the sound is not the correct format or
             * if an error occurs while loading the file and extracting the
             * sound.
             * 
             * The exceptions are all caught in a single handler to make the code 
             * more readable.
             */
            System.err.println("Cannot load sound file:" + soundFile);
        }

        createMovie();
    
        writeFile(fileOut);
    }
    
    void createMovie()
    {
        float framesPerSecond = 12.0f;

        /*
         * Calculate the number of decoded sound samples played for each frame and
         * the size, in bytes, of each block compressed sound data.
         */
        int samplesPerBlock = soundGenerator.getSampleRate() / (int) framesPerSecond;
        int numberOfBlocks = soundGenerator.getSamplesPerChannel() / samplesPerBlock;

        /* 
         * Add all the objects together to create the movie.
         */
        movie.setFrameSize(new FSBounds(0, 0, 8000, 4000));
        movie.setFrameRate(framesPerSecond);
        movie.add(new FSSetBackgroundColor(FSColorTable.lightblue()));

        /* 
         * An FSSoundStreamHeader2 object defines the attributes of the streaming sound.
         */
        movie.add(soundGenerator.streamHeader(samplesPerBlock));

        /* 
         * Add a streaming block for each frame so the sound is played as each frame 
         * is displayed.
         */
        for (int i=0; i<numberOfBlocks; i++)
        {
            movie.add(soundGenerator.streamBlock(i, samplesPerBlock));
            movie.add(new FSShowFrame());
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -