diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1ee23d1..c116533 100755
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,6 +5,7 @@
     <uses-sdk
         android:minSdkVersion="9"
         android:targetSdkVersion="14" />
+    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
 
     <uses-permission android:name="android.permission.INTERNET" />
     <!-- 监听网络的变化 -->
diff --git a/app/src/main/java/cn/bmob/imdemo/ui/LocActivity.java b/app/src/main/java/cn/bmob/imdemo/ui/LocActivity.java
index 2d77fff..895c9a1 100644
--- a/app/src/main/java/cn/bmob/imdemo/ui/LocActivity.java
+++ b/app/src/main/java/cn/bmob/imdemo/ui/LocActivity.java
@@ -1,7 +1,11 @@
 package cn.bmob.imdemo.ui;
 
+import android.content.Context;
 import android.graphics.Color;
+import android.graphics.drawable.AnimationDrawable;
 import android.graphics.drawable.Drawable;
+import android.media.AudioManager;
+import android.media.MediaPlayer;
 import android.os.Handler;
 import android.os.Message;
 import android.os.Bundle;
@@ -34,6 +38,8 @@ import com.baidu.mapapi.model.LatLng;
 import com.baidu.mapapi.utils.DistanceUtil;
 import com.orhanobut.logger.Logger;
 
+import java.io.File;
+import java.io.FileInputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedList;
@@ -52,6 +58,7 @@ import cn.bmob.newim.bean.BmobIMAudioMessage;
 import cn.bmob.newim.bean.BmobIMConversation;
 import cn.bmob.newim.bean.BmobIMLocationMessage;
 import cn.bmob.newim.bean.BmobIMMessage;
+import cn.bmob.newim.core.BmobDownloadManager;
 import cn.bmob.newim.core.BmobIMClient;
 import cn.bmob.newim.core.BmobRecordManager;
 import cn.bmob.newim.event.MessageEvent;
@@ -66,6 +73,10 @@ public class LocActivity extends ParentWithNaviActivity implements ObseverListen
     public BaiduMap mBaiduMap = null;
     public LocationClient mLocationClient = null;
     public BDLocationListener myListener = new MyLocationListener();
+    BmobIMAudioMessage audio_msg;
+    MediaPlayer mediaPlayer = null;
+    Context mContext;
+
 
     @Bind(R.id.btn_speak)
     Button btn_speak;
@@ -97,6 +108,8 @@ public class LocActivity extends ParentWithNaviActivity implements ObseverListen
         SDKInitializer.initialize(getApplicationContext());
         mLocationClient.registerLocationListener(myListener);
 
+        mContext = getApplicationContext();
+
         setContentView(R.layout.activity_loc);
         c = BmobIMConversation.obtain(BmobIMClient.getInstance(), (BmobIMConversation) getBundle().getSerializable("c"));
         BmobIM.getInstance().addMessageListHandler(this);
@@ -313,28 +326,6 @@ public class LocActivity extends ParentWithNaviActivity implements ObseverListen
             }
         };
     }
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        mLocationClient.unRegisterLocationListener( myListener );
-        mLocationClient.stop();
-        // 当不需要定位图层时关闭定位图层
-        mBaiduMap.setMyLocationEnabled(false);
-        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
-        mMapView.onDestroy();
-    }
-    @Override
-    protected void onResume() {
-        super.onResume();
-        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
-        mMapView.onResume();
-    }
-    @Override
-    protected void onPause() {
-        super.onPause();
-        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
-        mMapView.onPause();
-    }
 
     @Override
     protected String title() {
@@ -527,22 +518,104 @@ public class LocActivity extends ParentWithNaviActivity implements ObseverListen
     }
 
     private void process_recv_msg(MessageEvent event) {
-        Logger.i( "we are in process recv msg\n");
         BmobIMMessage msg =event.getMessage();
+        Logger.i( msg.getMsgType() );
+
         if( msg.getMsgType().equals("location")) {
             Logger.i( "获取的msg的类型:" + msg.getMsgType() );
             BmobIMLocationMessage recv_loc_msg = BmobIMLocationMessage.buildFromDB( msg );
             friend_loc = new LatLng(recv_loc_msg.getLatitude(), recv_loc_msg.getLongitude());
             refresh_map();
         }
-        else if ( msg.getMsgType().equals("audio")){
-
+        else if ( msg.getMsgType().equals("sound")){
+            audio_msg = BmobIMAudioMessage.buildFromDB(true,msg);
+            String localPath = BmobDownloadManager.getDownLoadFilePath(audio_msg);
+            startPlayRecord(localPath, true);
         }
 
     }
 
+    public void startPlayRecord(String filePath, boolean isUseSpeaker) {
+        if (!(new File(filePath).exists())) {
+            return;
+        }
+        Logger.i("start play Record ");
+
+        /*AudioManager audioManager = (AudioManager) mContext
+                .getSystemService(Context.AUDIO_SERVICE);
+        mediaPlayer = new MediaPlayer();
+        if (isUseSpeaker) {
+            audioManager.setMode(AudioManager.MODE_NORMAL);
+            audioManager.setSpeakerphoneOn(true);
+            mediaPlayer.setAudioStreamType(AudioManager.STREAM_RING);
+        } else {
+            audioManager.setSpeakerphoneOn(false);
+            audioManager.setMode(AudioManager.MODE_IN_CALL);
+            mediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
+        }
+
+        try {
+            mediaPlayer.reset();
+            // 单独使用此方法会报错播放错误:setDataSourceFD failed.: status=0x80000000
+            // mediaPlayer.setDataSource(filePath);
+            // 因此采用此方式会避免这种错误
+            FileInputStream fis = new FileInputStream(new File(filePath));
+            //mediaPlayer.setDataSource(fis.getFD());
+            mediaPlayer.setDataSource(filePath);
+            mediaPlayer.prepare();
+            mediaPlayer.start();
+            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
+
+                @Override
+                public void onPrepared(MediaPlayer arg0) {
+
+                    arg0.start();
+                }
+            });
+            mediaPlayer
+                    .setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
+
+                        @Override
+                        public void onCompletion(MediaPlayer mp) {
+                            stopPlayRecord();
+                        }
+
+                    });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }*/
+    }
+    public void stopPlayRecord() {
+        if (mediaPlayer != null) {
+            mediaPlayer.stop();
+        }
+    }
     class LocationEntity {
         BDLocation location;
         long time;
     }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        mLocationClient.unRegisterLocationListener( myListener );
+        mLocationClient.stop();
+        // 当不需要定位图层时关闭定位图层
+        mBaiduMap.setMyLocationEnabled(false);
+        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
+        //mMapView.onDestroy();
+    }
+    @Override
+    protected void onResume() {
+        super.onResume();
+        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
+        mMapView.onResume();
+    }
+    @Override
+    protected void onPause() {
+        super.onPause();
+        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
+        mMapView.onPause();
+    }
+
 }
diff --git a/app/src/main/res/layout/include_chat_bottom_bar.xml b/app/src/main/res/layout/include_chat_bottom_bar.xml
index 9d3baf4..18b9ad7 100755
--- a/app/src/main/res/layout/include_chat_bottom_bar.xml
+++ b/app/src/main/res/layout/include_chat_bottom_bar.xml
@@ -13,16 +13,6 @@
     android:gravity="center_vertical"
     android:orientation="horizontal">
 
-    <Button
-        android:id="@+id/btn_chat_voice"
-        android:layout_width="30dp"
-        android:layout_height="30dp"
-        android:layout_marginLeft="6dp"
-        android:background="@drawable/btn_chat_voice_selector"
-        android:gravity="center"
-        android:textColor="@color/base_color_text_black" >
-    </Button>
-
     <Button
         android:id="@+id/btn_chat_emo"
         android:layout_width="30dp"
@@ -47,25 +37,6 @@
         android:text="@string/longclick_speak" >
     </Button>
 
-    <Button
-        android:id="@+id/btn_chat_keyboard"
-        android:layout_width="30dp"
-        android:layout_height="30dp"
-        android:visibility="gone"
-        android:background="@drawable/btn_chat_keyboard_selector"
-        android:gravity="center"
-        android:textColor="@color/base_color_text_black" >
-    </Button>
-
-    <Button
-        android:id="@+id/btn_chat_send"
-        android:layout_width="30dp"
-        android:layout_height="30dp"
-        android:visibility="gone"
-        android:layout_marginLeft="@dimen/margin_10"
-        android:background="@drawable/btn_chat_send_selector"
-        android:gravity="center"
-        />
-    </LinearLayout>
+</LinearLayout>
 
 </LinearLayout>
\ No newline at end of file