playback.java

来自「java语音聊天系统 分为服务器端 客户端 连接之后 既可以相互通信 包括语音 」· Java 代码 · 共 55 行

JAVA
55
字号
package PC;

import java.io.*;     
import javax.sound.sampled.*;     
import java.net.*;     

class Playback implements Runnable{       
	private AudioPlayStream PhoneSPK=null;     
	private AudioFormat format=AMAudioFormat.getLineAudioFormat(AMAudioFormat.FORMAT_CODE_GSM);           
	private Thread thread;     
	private Socket s;        
	public Playback(Socket s){//构造器   取得socket以获得网络输入流     
        this.s=s;     
    }     
    public void start(){      
        thread=new Thread(this);     
        thread.setName("Playback");     
        thread.start();     
    }      
    public void stop(){     
        thread=null;     
    }      
    public void run(){ 
    	PhoneSPK=new AudioPlayStream(format);     
        InputStream playbackInputStream;       
        try{ 
        	PhoneSPK.open();
        	playbackInputStream=s.getInputStream();         
            boolean complete=false;  
            byte[] data=new byte[64];//此处数组的大小跟实时性关系不大,可根据情况进行调整     
            int numBytesRead=0;
            PhoneSPK.start();
            while(thread!=null)
            {        
                numBytesRead=playbackInputStream.read(data);     
                if(numBytesRead==-1)
                {     
                    complete=true;     
                    break;     
                }     
                PhoneSPK.write(data,0,numBytesRead);        
            }  
        }
        catch(Exception ex)
        {     
            return;     
        }      
        if(thread!=null)
        {     
        	PhoneSPK.drain();     
        }          
    }     
}     

⌨️ 快捷键说明

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