WEB开发网
开发学院手机开发Android 开发 Android通过流播放声音 阅读

Android通过流播放声音

 2013-09-07 21:08:11 来源:WEB开发网   
核心提示:(4)通过套接字传输和接收数据数据传送部分,使用的是套接字,Android通过流播放声音(2),通信双方,通过不同的端口向服务器发送请求,AudioRecord和AudioTrack类可以用,只是稍微复杂些,与服务器连接上后,开始通话向服务器发送数据

(4)通过套接字传输和接收数据

数据传送部分,使用的是套接字。通信双方,通过不同的端口向服务器发送请求,与服务器连接上后,开始通话向服务器发送数据,服务器通过一个套接字接收到一 方的数据后,先存在一个数组中,然后将该数组中数据以数据流的形式再通过另一个套接字传送到另一方。这样就实现了双方数据的传送。

(5)代码架构

为避免反复录入和读取数据占用较多资源,使程序在进行录放音时不能执行其他命令,故将录音和放音各写成一个线程类,然后在主程序中,通过MENU控制通话的开始、停止、结束。

最后说明,AudioRecord和AudioTrack类可以用,只是稍微复杂些。以下贴出双方通信的源码,希望对大家有所帮助:

主程序

package eoe.demo;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class Daudioclient extends Activity {

public static final int MENU_START_ID = Menu.FIRST ;
public static final int MENU_STOP_ID = Menu.FIRST + 1 ;
public static final int MENU_EXIT_ID = Menu.FIRST + 2 ;

protected Saudioserver m_player ;
protected Saudioclient m_recorder ;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

public boolean onCreateOptionsMenu(Menu aMenu)
{
boolean res = super.onCreateOptionsMenu(aMenu) ;

aMenu.add(0, MENU_START_ID, 0, “START”) ;
aMenu.add(0, MENU_STOP_ID, 0, “STOP”) ;
aMenu.add(0, MENU_EXIT_ID, 0, “EXIT”) ;

return res ;
}
public boolean onOptionsItemSelected(MenuItem aMenuItem)
{
switch (aMenuItem.getItemId()) {
case MENU_START_ID:
{
m_player = new Saudioserver() ;
m_recorder = new Saudioclient() ;

m_player.init() ;
m_recorder.init() ;

m_recorder.start() ;
m_player.start() ;

}
break ;
case MENU_STOP_ID:
{
m_recorder.free() ;
m_player.free() ;

m_player = null ;
m_recorder = null ;
}
break ;
case MENU_EXIT_ID:
{
int pid = android.os.Process.myPid() ;
android.os.Process.killProcess(pid) ;
}
break ;
default:
break ;
}

return super.onOptionsItemSelected(aMenuItem);
}
}
录音程序Saudioclient:

package eoe.demo;

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;

上一页  1 2 3 4  下一页

Tags:Android 通过 播放

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接