3.27

安卓应用中的音视频处理实战​
在多媒体应用需求日益增长的当下,掌握安卓中的音视频处理技术至关重要。Android 提供了 MediaPlayer、MediaRecorder 等核心类用于音频和视频的播放与录制。​

  1. 音频播放与录制​
    使用 MediaPlayer 播放音频文件:​

    MediaPlayer mediaPlayer = new MediaPlayer();​
    try {​
    mediaPlayer.setDataSource(context, Uri.parse("android.resource://" + context.getPackageName() + "/" + R.raw.audio_file));​
    mediaPlayer.prepare();​
    mediaPlayer.start();​
    } catch (IOException e) {​
    e.printStackTrace();​
    }​

    使用 MediaRecorder 录制音频:​

    MediaRecorder mediaRecorder = new MediaRecorder();​
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);​
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);​
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);​
    mediaRecorder.setOutputFile(Environment.getExternalStorageDirectory() + "/recorded_audio.3gp");​
    try {​
    mediaRecorder.prepare();​
    mediaRecorder.start();​
    } catch (IOException e) {​
    e.printStackTrace();​
    }​
  2. 视频播放与录制​
    使用 VideoView 播放视频:​

    <VideoView​
    android:id="@+id/video_view"​
    android:layout_width="match_parent"​
    android:layout_height="match_parent"/>​


    VideoView videoView = findViewById(R.id.video_view);​
    videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video_file));​
    videoView.setMediaController(new MediaController(this));​
    videoView.requestFocus();​
    videoView.start();​

    使用 MediaRecorder 录制视频:​

    MediaRecorder mediaRecorder = new MediaRecorder();​
    mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);​
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);​
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);​
    mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);​
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);​
    mediaRecorder.setOutputFile(Environment.getExternalStorageDirectory() + "/recorded_video.mp4");​
    try {​
    mediaRecorder.prepare();​
    mediaRecorder.start();​
    } catch (IOException e) {​
    e.printStackTrace();​
    }​
posted @ 2025-03-27 22:41  Echosssss  阅读(6)  评论(0)    收藏  举报