zoukankan      html  css  js  c++  java
  • mmsplayer v2 java 之(mmsTrack 音频类)

    package com.weiny.mms;
    
    import android.media.AudioFormat;
    import android.media.AudioManager;
    import android.media.AudioTrack;
    import android.util.Log;
    
    public class mmsTrack {
        
        int mFrequency;                                        // 采样率
        int mChannel;                                        // 声道
        int mSampBit;                                        // 采样精度
        AudioTrack mAudioTrack;                        
        public mmsTrack(int frequency, int channel, int sampbit){
                mFrequency = frequency;
                //mChannel = channel;
                //mSampBit = sampbit;
                if(channel==1) mChannel=AudioFormat.CHANNEL_CONFIGURATION_MONO;
                else if(channel==2) mChannel=AudioFormat.CHANNEL_CONFIGURATION_STEREO;
                if(sampbit==8) mSampBit=AudioFormat.ENCODING_PCM_8BIT;
                else if(sampbit==16) mSampBit=AudioFormat.ENCODING_PCM_16BIT;
        }
        
        public void init(){
                if (mAudioTrack != null){
                        release();
                }
    
                int minBufSize = AudioTrack.getMinBufferSize(mFrequency, 
                                                             mChannel,
                                                             mSampBit);
    
                mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
                                mFrequency, 
                                mChannel, 
                                mSampBit, 
                                minBufSize,
                                AudioTrack.MODE_STREAM);
                
                
                
                
                mAudioTrack.play();        
        }
        public void release(){
                if (mAudioTrack != null){
                        mAudioTrack.stop();                                               
                        mAudioTrack.release();
                        mAudioTrack=null;
                }
        }
        
        public int playAudioTrack(byte []data, int offset, int length){
        		int nResult=0;
                if (data == null || data.length == 0){
                    nResult=1;   
                	return nResult;
                }
                
                try {
                        mAudioTrack.write(data, offset, length);
                } catch (Exception e) {
                        // TODO: handle exception
                        e.printStackTrace();
                        nResult=1;
                }
                return nResult;
        }
        
        public int getPrimePlaySize(){
                int minBufSize = AudioTrack.getMinBufferSize(mFrequency, 
                                mChannel,
                                mSampBit);
                
                return minBufSize * 2;
        }
    }
    

    这个音频类是通用的,大家可以用于其他的方面。之前说过,V2.0的JAVA部分代码会开放,现在我做到了。免得代码费劲去破解我的代码。哈哈。


    版权所有,禁止转载

    发布:http://blog.csdn.net/weinyzhou/article/details/7632739


  • 相关阅读:
    【刷题】LeetCode刷刷刷 — 2021-05-31(2)
    【刷题】LeetCode刷刷刷 — 2021-05-31(1)
    【刷题】LeetCode刷刷刷 — 2021-05-30(2)
    适配器模式
    跨端开发框架各方评价【整合】+思索
    uni-app运行到小程序报错onStreamRead
    序列化
    tkinter---GUI
    tkinter--抽奖
    6位数(字母和数字)验证码
  • 原文地址:https://www.cnblogs.com/weinyzhou/p/2592468.html
Copyright © 2011-2022 走看看