模仿微信语音聊天功能(4) 音频播放实现或者项目结束(2)

电脑杂谈  发布时间:2019-10-02 15:03:31  来源:网络整理

最后再MainActivity里,我们集成播放器,设置ListView。代码如下:

  1 package com.fuly.irecoder;
  2 
  3 import java.util.ArrayList;
  4 import java.util.List;
  5 
  6 import com.fuly.util.MyAdapter;
  7 import com.fuly.util.Recoder;
  8 import com.fuly.util.RecoderButton;
  9 import com.fuly.util.RecoderButton.RecoderButtonListener;
 10 import com.fuly.util.RecoderPlayer;
 11 
 12 import android.media.MediaPlayer;
 13 import android.os.Bundle;
 14 import android.app.Activity;
 15 import android.view.Menu;
 16 import android.view.View;
 17 import android.widget.AdapterView;
 18 import android.widget.AdapterView.OnItemClickListener;
 19 import android.widget.ArrayAdapter;
 20 import android.widget.ListView;
 21 
 22 public class MainActivity extends Activity {
 23     
 24     
 25     private ListView mListView ;
 26     private MyAdapter mAdapter; 
 27     private List<Recoder> mDatas = new ArrayList<Recoder>();
 28     
 29     private RecoderPlayer mPlayer;
 30 
 31   
 32     protected void onCreate(Bundle savedInstanceState) {
 33         super.onCreate(savedInstanceState);
 34         setContentView(R.layout.activity_main);
 35         
 36         mListView = (ListView) findViewById(R.id.rec_listview);
 37         RecoderButton button = (RecoderButton) findViewById(R.id.btn_recoder);
 38         
 39         button.setOnRecoderButtonListener(new RecoderButtonListener() {
 40             
 41     
 42             public void onFinish(int mTime, String filePath) {
 43                 
 44                 Recoder recoder = new Recoder(mTime,filePath);
 45                 
 46                 mDatas.add(recoder);
 47                 
 48                 mAdapter.notifyDataSetChanged();//通知状态发生改变,即有新数据添加进来
 49                 
 50                 //设置ListView为最后一一项
 51                 mListView.setSelection(mDatas.size()-1);
 52     
 53                 
 54             }
 55         });
 56         
 57         mAdapter = new MyAdapter(this, mDatas);
 58         mListView.setAdapter(mAdapter);
 59         
 60         
 61         mListView.setOnItemClickListener(new OnItemClickListener() {
 62 
 63             public void onItemClick(AdapterView<?> parent, View view,
 64                     int position, long id) {
 65                
 66                 
 67                 //播放音频
 68                 
 69                 mPlayer = new RecoderPlayer();
 70                 
 71                 //OnCompletionListener是播放结束的器
 72                 mPlayer.playSound(mDatas.get(position).filePath);
 73                 
 74                 
 75                 
 76             }
 77         });
 78         
 79     }
 80     
 81     
 82     @Override
 83     protected void onPause() {
 84         RecoderPlayer.pause();
 85         super.onPause();
 86     }
 87      
 88     @Override
 89     protected void onRestart() {
 90         RecoderPlayer.reset();
 91         super.onRestart();
 92     }
 93     
 94     @Override
 95     protected void onDestroy() {
 96         RecoderPlayer.release();
 97         mDatas.clear();
 98         super.onDestroy();
 99     }
100 
101   
102 }

至此,我们的整个项目算是完成了。赶快运行一下,看看效果吧。如果对界面不满意微信语音聊天功能,可以自己再调调哦。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-124874-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...