zoukankan      html  css  js  c++  java
  • 音频技术

     1 //播放资源文件下和scdard下的音频
     2 public class Main extends Activity implements OnClickListener,
     3         OnCompletionListener {
     4     private MediaPlayer mediaPlayer;
     5     private Button btnPause;
     6 
     7     @Override
     8     public void onCreate(Bundle savedInstanceState) {
     9         super.onCreate(savedInstanceState);
    10         setContentView(R.layout.main);
    11         // 播放资源文件的音频
    12         Button btnStart1 = (Button) findViewById(R.id.btnStart1);
    13         // 播放sdcard里边的音频文件
    14         Button btnStart2 = (Button) findViewById(R.id.btnStart2);
    15 
    16         Button btnStop = (Button) findViewById(R.id.btnStop);
    17 
    18         btnPause = (Button) findViewById(R.id.btnPause);
    19 
    20         btnStart1.setOnClickListener(this);
    21         btnStart2.setOnClickListener(this);
    22         btnStop.setOnClickListener(this);
    23         btnPause.setOnClickListener(this);
    24 
    25     }
    26 
    27     // 播放完成
    28     public void onCompletion(MediaPlayer mp) {
    29         mp.release();
    30         setTitle("资源已经释放");
    31 
    32     }
    33 
    34     public void onClick(View view) {
    35         try {
    36             switch (view.getId()) {
    37             case R.id.btnStart1: // 播放音频资源
    38                 mediaPlayer = MediaPlayer.create(this, R.raw.music);
    39                 mediaPlayer.setOnCompletionListener(this);
    40 
    41                 mediaPlayer.start();
    42 
    43                 break;
    44             case R.id.btnStart2:// 播放SD卡上的音频文件(/sdcard/music.mp3)
    45                 mediaPlayer = new MediaPlayer();
    46                 mediaPlayer.setDataSource("/sdcard/music.mp3");
    47 
    48                 mediaPlayer.prepare();
    49                 mediaPlayer.start();
    50                 break;
    51 
    52             case R.id.btnStop:
    53                 if (mediaPlayer != null) {
    54                     if (mediaPlayer.isPlaying())
    55                         mediaPlayer.stop();
    56                 }
    57                 break;
    58 
    59             case R.id.btnPause:
    60                 if (mediaPlayer != null) {
    61                     if ("播放".equals(btnPause.getText().toString())) {
    62                         mediaPlayer.start();
    63                         btnPause.setText("暂停");
    64 
    65                     } else if ("暂停".equals(btnPause.getText().toString())) {
    66                         mediaPlayer.pause();
    67                         btnPause.setText("播放");
    68                     }
    69                 }
    70                 break;
    71             default:
    72                 break;
    73             }
    74         } catch (Exception e) {
    75             // TODO: handle exception
    76         }
    77     }
    78 }

     1 //录制音频
     2 public class Main extends Activity implements OnClickListener {
     3     private File recordAudioFile;
     4     private MediaRecorder mediaRecorder;
     5     private MediaPlayer mediaPlayer;
     6 
     7     @Override
     8     public void onCreate(Bundle savedInstanceState) {
     9         super.onCreate(savedInstanceState);
    10         setContentView(R.layout.main);
    11         // 录制,停止,播放,删除
    12         Button btnRecord = (Button) findViewById(R.id.btnRecord);
    13         Button btnStop = (Button) findViewById(R.id.btnStop);
    14         Button btnPlay = (Button) findViewById(R.id.btnPlay);
    15         Button btnDelete = (Button) findViewById(R.id.btnDelete);
    16 
    17         btnRecord.setOnClickListener(this);
    18         btnStop.setOnClickListener(this);
    19         btnPlay.setOnClickListener(this);
    20         btnDelete.setOnClickListener(this);
    21 
    22     }
    23 
    24     public void onClick(View view) {
    25         try {
    26             switch (view.getId()) {
    27             case R.id.btnRecord: // 录制音频
    28                 recordAudioFile = File.createTempFile("record", ".amr");
    29                 mediaRecorder = new MediaRecorder();
    30                 // 指定音频采集源--麦克风
    31                 mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    32                 // 指定录制格式 mpeg4
    33                 mediaRecorder
    34                         .setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    35                 // 设置编码
    36                 mediaRecorder
    37                         .setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
    38                 // 录制生成文件
    39                 mediaRecorder.setOutputFile(recordAudioFile.getAbsolutePath());
    40                 mediaRecorder.prepare();
    41                 mediaRecorder.start();
    42                 Toast.makeText(this, "开始录音", Toast.LENGTH_LONG).show();
    43 
    44                 break;
    45             // 停止
    46             case R.id.btnStop:
    47                 if (mediaRecorder != null) {
    48                     mediaRecorder.stop();
    49                     mediaRecorder.release();
    50                     mediaRecorder = null;
    51                     Toast.makeText(this, "停止录音", Toast.LENGTH_LONG).show();
    52                 }
    53                 break;
    54             // 播放
    55             case R.id.btnPlay:
    56                 mediaPlayer = new MediaPlayer();
    57                 mediaPlayer.setDataSource(recordAudioFile.getAbsolutePath());
    58                 mediaPlayer.prepare();
    59                 mediaPlayer.start();
    60                 break;
    61             // 删除
    62             case R.id.btnDelete:
    63                 recordAudioFile.delete();
    64                 break;
    65             default:
    66                 break;
    67             }
    68 
    69         } catch (Exception e) {
    70             // TODO: handle exception
    71         }
    72     }
    73 }

  • 相关阅读:
    Setting up SharePoint Blogs, Wikis, and Announcements
    Reports 将透视表显示成没有级联关系的普通表
    TF80012: The document cannot be opened because there is a problem with the installation of the Microsoft Visual Studio v
    项目干系人分析的“四步法”
    Overload和Override的区别
    Add and Customize a Type of Work Item
    将所有的非DLL, PDB文件从一个位置Copy到另外一个位置,相同文件跳过
    如何删除工作项
    No Excel Calculation Services is available in the farm
    SPORTINGLIFE.COM
  • 原文地址:https://www.cnblogs.com/my334420/p/6921508.html
Copyright © 2011-2022 走看看