首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏python3

    java实现MP3

    audioFormat;// 文件格式     SourceDataLine sourceDataLine;// 输出设备 // 播放 private void play() {         = audioInputStream.getFormat();             // 转换mp3文件编码             if (audioFormat.getEncoding() ! = AudioFormat.Encoding.PCM_SIGNED) {                 audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED ,                         audioFormat.getSampleRate(), 16, audioFormat                                 .getChannels(), audioFormat.getChannels() * 2,                         audioFormat.getSampleRate(), false

    2.4K20发布于 2020-01-08
  • 来自专栏Android点滴分享

    AudioTrack和AudioRecord使用

    , AudioFormat.ENCODING_PCM_8BIT); recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, 44100 , AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_8BIT, bufferSize); recorder.startRecording audioFormat = new AudioFormat.Builder().setEncoding(AudioFormat.ENCODING_PCM_8BIT).setSampleRate(44100 (44100, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT); tracker = new AudioTrack (audioAttributes, audioFormat, bufferSize, AudioTrack.MODE_STREAM, AudioManager.AUDIO_SESSION_ID_GENERATE

    83020编辑于 2022-10-25
  • 来自专栏韩曙亮的移动开发专栏

    【Android RTMP】音频数据采集编码 ( FAAC 头文件与静态库拷贝到 AS | CMakeList.txt 配置 FAAC | AudioRecord 音频采样 PCM 格式 )

    , AudioFormat.ENCODING_PCM_16BIT) * 2; ② 创建 AudioRecord 对象 : AudioRecord 构造函数需要传入 音频来源 , 采样率 , 声道配置 , / 立体声 AudioFormat.CHANNEL_IN_STEREO ; ④ int audioFormat 参数 : 采样位数, 8 位 AudioFormat.ENCODING_PCM_8BIT / 16 , AudioFormat.ENCODING_PCM_16BIT ; ⑤ int bufferSizeInBytes 参数 : 每次采集数据的最大缓冲区大小 ; 2 . , AudioFormat.ENCODING_PCM_16BIT) * 2; /* public AudioRecord(int audioSource, int / 立体声 AudioFormat.CHANNEL_IN_STEREO, int audioFormat 参数 : 采样位数, 8 位 AudioFormat.ENCODING_PCM

    3.4K20编辑于 2023-03-27
  • 来自专栏Flutter入门

    SDL2库(4)-Android 端源码简要分析(AudioSubSystem)

    23 : 21); if (Build.VERSION.SDK_INT < minSDKVersion) { audioFormat = AudioFormat.ENCODING_PCM _16BIT; } } switch (audioFormat) { case AudioFormat.ENCODING_PCM ", getting ENCODING_PCM_16BIT"); audioFormat = AudioFormat.ENCODING_PCM_16BIT; = AudioFormat.CHANNEL_OUT_QUAD | AudioFormat.CHANNEL_OUT_FRONT_CENTER; break; case 7: channelConfig = AudioFormat.CHANNEL_OUT_5POINT1 | AudioFormat.CHANNEL_OUT_BACK_CENTER

    1K30发布于 2018-12-14
  • 来自专栏音频

    音视频基础能力之 Android 音频篇 (一): 音频采集

    , AudioFormat.ENCODING_PCM_16BIT); if(minBufferSize < buffer.capacity()){ minBufferSize = buffer.capacity () .setEncoding(AudioFormat.ENCODING_PCM_16BIT) .setSampleRate(48000) .setChannelMask( AudioFormat.CHANNEL_IN_STEREO) .build()) .setBufferSizeInBytes(bufferSizeInBytes) .build() channelConfig 描述音频通道的配置,一般配置单通道(AudioFormat.CHANNEL_IN_MONO) 和双声道 (AudioFormat.CHANNEL_IN_STEROR)。 audioFormat 音频格式,这里表示采集音频数据的精度,参数可选:AudioFormat.ENCODING_PCM_8BIT,AudioFormat.ENCODING_PCM_16BIT,AudioFormat.ENCODING_PCM_FLOAT

    1.6K00编辑于 2024-11-19
  • 来自专栏DevTips

    使用 AudioTrack 播放音频轨道

    #CHANNEL_OUT_MONO 单声道 * @link AudioFormat#CHANNEL_OUT_STEREO 双声道 * @param audioFormat * @link AudioFormat#ENCODING_PCM_16BIT, * @link AudioFormat#ENCODING_PCM_8BIT, * @link AudioFormat#ENCODING_PCM_FLOAT 计算最小缓冲区大小 /** * @param sampleRateInHz 采样频率 * @param channelConfig 声道数 * @param audioFormat 位宽. */ AudioFormat.CHANNEL_OUT_MONO : AudioFormat.CHANNEL_OUT_STEREO; int audioFormat = AudioFormat.ENCODING_PCM AudioFormat.ENCODING_PCM_8BIT : AudioFormat.ENCODING_PCM_16BIT; mBufferSize = AudioTrack.getMinBufferSize

    2.7K31发布于 2019-09-29
  • 来自专栏音视频直播技术专家

    iOS 实时音频采集与播放

    = 44100.00; audioFormat.mFormatID = kAudioFormatLinearPCM; audioFormat.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked; audioFormat.mFramesPerPacket = 1; audioFormat.mChannelsPerFrame = 1; audioFormat.mBitsPerChannel = 16; audioFormat.mBytesPerPacket , sizeof(audioFormat)); checkStatus(status); status = AudioUnitSetProperty , sizeof(audioFormat)); checkStatus(status); // 设置数据采集回调函数 AURenderCallbackStruct

    5.7K23发布于 2020-04-02
  • 来自专栏流媒体

    MediaCodec进行AAC编解码(AudioRecord采集录音)

    * See {@link AudioFormat#CHANNEL_IN_MONO} and * {@link AudioFormat#CHANNEL_IN_STEREO}. * @param audioFormat the format in which the audio data is to be returned. * See {@link AudioFormat#ENCODING_PCM_8BIT}, {@link AudioFormat#ENCODING_PCM_16BIT}, * and {@link AudioFormat#ENCODING_PCM_FLOAT} = AudioFormat.ENCODING_PCM_16BIT; // stereo 立体声, int channelConfig = AudioFormat.CHANNEL_CONFIGURATION_STEREO

    2.1K40发布于 2018-08-23
  • 来自专栏DevTips

    AVPlayer 添加音频播放功能

    AudioFormat.CHANNEL_OUT_MONO : AudioFormat.CHANNEL_OUT_STEREO; int audioFormat = AudioFormat.ENCODING_PCM _16BIT; if (outputFormat.containsKey("bit-width")) audioFormat = outputFormat.getInteger AudioFormat.ENCODING_PCM_8BIT : AudioFormat.ENCODING_PCM_16BIT; mBufferSize = AudioTrack.getMinBufferSize (sampleRate, channelConfig, audioFormat) * 2; mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC ,sampleRate,channelConfig,audioFormat,mBufferSize,AudioTrack.MODE_STREAM); mAudioTrack.play

    2.7K40发布于 2019-09-29
  • 来自专栏搜狗测试

    语音项目——Android录音学习

    (4). audioFormat指定采样PCM数据的采样格式,预设值定义在也AudioFormat中,常用值有: ENCODING_PCM_8BIT、ENCODING_PCM_16BIT和ENCODING_PCM_FLOAT AudioFormat.SAMPLE_RATE_UNSPECIFIED 可以自动根据选定的音频源设置频率。AUDIO_SAMPLE_RATE = 16000。 (3). ChannelConfig:声道设置 AudioFormat.CHANNEL_IN_MONO单声道,常量为AUDIO_CHANNEL =AudioFormat.CHANNEL_IN_MONO。 audioFormat:音频格式 AudioFormat.ENCODING_PCM_8BIT, AudioFormat.ENCODING_PCM_16BIT, andAudioFormat.ENCODING_PCM_FLOAT public static int getMinBufferSize (int sampleRateInHz, intchannelConfig, int audioFormat) 四、录音编码 1、编码格式

    4.3K10发布于 2021-03-10
  • 怎么用Java 把多个音频拼接成一个?

    import cn.juwatech.audio.AudioFile;import cn.juwatech.audio.AudioConcatenator;import cn.juwatech.audio.AudioFormat import cn.juwatech.audio.AudioConcatenator;import cn.juwatech.audio.AudioFile;import cn.juwatech.audio.AudioFormat path_to_audio_file_3.wav"; // 创建音频文件对象 AudioFile audioFile1 = new AudioFile(new File(audioFilePath1), AudioFormat.WAV ); AudioFile audioFile2 = new AudioFile(new File(audioFilePath2), AudioFormat.WAV); AudioFile audioFile3 = new AudioFile(new File(audioFilePath3), AudioFormat.WAV); // 将音频文件添加到列表中

    66110编辑于 2024-07-17
  • 来自专栏曾大稳的博客

    MediaCodec录制音视频并将合成为一个文件

    try { mAudioEncodec = MediaCodec.createEncoderByType(mineType); MediaFormat audioFormat ); audioFormat.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, 4096); mAudioEncodec.configure (audioFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); mAudioBuffInfo = new MediaCodec.BufferInfo MediaFormat audioFormat = new MediaFormat(...); MediaFormat videoFormat = new MediaFormat(...); int audioTrackIndex = muxer.addTrack(audioFormat); int videoTrackIndex = muxer.addTrack(

    2.5K42发布于 2020-01-20
  • 来自专栏Android点滴分享

    AudioTrack的源码解读(1)

    AudioFormat负责音频参数配置,比如采样率,声道,精度等。 接下来就是buffer大小,buffer大小可以通过getMinBufferSize获取到。 ; case AudioFormat.CHANNEL_OUT_STEREO: case AudioFormat.CHANNEL_CONFIGURATION_STEREO: AudioFormat.isPublicEncoding(audioFormat)) { loge("getMinBufferSize(): Invalid audio format | AudioFormat.CHANNEL_OUT_FRONT_RIGHT; } int encoding = AudioFormat.ENCODING_DEFAULT ; if ((format.getPropertySetMask() & AudioFormat.AUDIO_FORMAT_HAS_PROPERTY_ENCODING) !

    2.2K20编辑于 2022-10-25
  • 来自专栏Surpass' Blog

    Java如何调用本地扬声器

    public class EngineeCore { String filePath = "E:\\voice\\voice_cache.wav"; AudioFormat audioFormat flag = false; targetDataLine.stop(); targetDataLine.close(); } private AudioFormat ; // true,false boolean bigEndian = false; // true,false return new AudioFormat getAudioFormat(); DataLine.Info dataLineInfo = new DataLine.Info(TargetDataLine.class, audioFormat , audioData.length / audioFormat.getFrameSize()); //定义最终保存的文件名 System.out.println

    1.3K30发布于 2021-01-19
  • 来自专栏android技术

    NDK--利用AudioTrack播放FFmpeg解码后的音频流

    ,方法很简单,在native层调用java代码 首先在java中定义相应的方法: package com.aruba.ffmpegapplication; import android.media.AudioFormat */ private void create(int sampleRateInHz, int channelCount) { int channelConfig = AudioFormat.CHANNEL_OUT_MONO ; //单声道 if (channelCount == 2) { channelConfig = AudioFormat.CHANNEL_OUT_STEREO; } int buffSize = AudioTrack.getMinBufferSize(sampleRateInHz, channelConfig, AudioFormat.ENCODING_PCM / @Deprecated // public AudioTrack(int streamType, int sampleRateInHz, int channelConfig, int audioFormat

    1.6K60发布于 2020-07-03
  • 来自专栏韩曙亮的移动开发专栏

    【Android 高性能音频】Oboe 开发流程 ( Oboe 音频帧简介 | AudioStreamCallback 中的数据帧说明 )

    Android 高性能音频】Oboe 开发流程 ( Oboe 完整代码示例 ) 博客中的 Oboe 音频流创建时 的代码 , 设置 Oboe 音频流 的参数如下 ; 设置的 采样格式 是 oboe::AudioFormat builder.setSharingMode(oboe::SharingMode::Exclusive); // 设置音频采样格式 builder.setFormat(oboe::AudioFormat 设置回调对象 , 注意要设置 AudioStreamCallback * 指针类型 builder.setCallback(&myCallback); 如果设置的 采样格式 是 oboe::AudioFormat 中 , 实现的 onAudioReady 方法 , 其中的 int32_t numFrames 就是本次需要采样的帧数 , 注意单位是音频帧 , 这里的音频帧就是上面所说的 采样格式 是 oboe::AudioFormat onAudioReady(oboe::AudioStream *audioStream, void *audioData, int32_t numFrames) { // 需要生成 AudioFormat

    15.3K00编辑于 2023-03-28
  • 来自专栏IT杂谈学习

    【Java】已解决:`javax.sound.sampled.LineUnavailableException`

    场景示例: AudioFormat format = new AudioFormat(44100, 16, 2, true, true); DataLine.Info info = new DataLine.Info 三、错误代码示例 为了更好地理解该问题,下面提供一个典型的错误代码示例: public void playAudio() { AudioFormat format = new AudioFormat 改进后的代码示例: public void playAudio() { AudioFormat format = new AudioFormat(44100, 16, 2, true, true

    42210编辑于 2024-09-06
  • 来自专栏Android点滴分享

    AudioRecord源码解读(3)

    源码介绍 public AudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, : // AudioFormat.CHANNEL_CONFIGURATION_DEFAULT case AudioFormat.CHANNEL_IN_MONO: case AudioFormat.CHANNEL_IN_STEREO: case AudioFormat.CHANNEL_CONFIGURATION_STEREO: case ( AudioFormat.CHANNEL_IN_FRONT | AudioFormat.CHANNEL_IN_BACK): channelCount = 2; ((format.getPropertySetMask() & AudioFormat.AUDIO_FORMAT_HAS_PROPERTY_ENCODING) !

    1.7K10编辑于 2022-10-25
  • 来自专栏学习java的小白

    百度语音识别pom引入jar工具类

    import org.json.JSONObject; import javax.sound.sampled.AudioFileFormat; import javax.sound.sampled.AudioFormat File mp3 = new File(mp3filepath); AudioInputStream audioInputStream = null; AudioFormat MpegAudioFileReader mp = new MpegAudioFileReader(); in = mp.getAudioInputStream(mp3); AudioFormat baseFormat = in.getFormat(); targetFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED

    1.2K10发布于 2020-12-07
  • 来自专栏雪月清的随笔

    Android FFmpeg系列05--音频解码与播放

    ENCODING_PCM_16BIT // 计算最小buffer size val bufferSize = AudioTrack.getMinBufferSize( 44100, AudioFormat.CHANNEL_OUT_STEREO , AudioFormat.ENCODING_PCM_16BIT ) // 创建AudioTrack实例 mAudioTrack = AudioTrack( AudioAttributes.Builder ().setLegacyStreamType(AudioManager.STREAM_MUSIC).build(), AudioFormat.Builder(). setChannelMask(AudioFormat.CHANNEL_OUT_STEREO) .setEncoding(AudioFormat.ENCODING_PCM_16BIT) swr_alloc_set_opts( nullptr, AV_CH_LAYOUT_STEREO, // 双声道 AV_SAMPLE_FMT_S16, // 对应到AudioTrack的AudioFormat.ENCODING_PCM

    1.8K21编辑于 2022-09-21
领券