gpt4 book ai didi

java - MODE_STREAM 中的 AudioTrack 没有声音

转载 作者:搜寻专家 更新时间:2023-11-01 07:53:35 24 4
gpt4 key购买 nike

我已经被这个问题困了好几天了。我现在所处的阶段只是试图获得一个可以构建的工作示例,但我什至无法达到这一点。

我的问题是基于 this example .我已将源代码(和解决方案)包含到我自己的代码中,并且可以看到正在写入缓冲区,但设备没有声音。我正在努力确定如何进一步调试它。

package com.example.audio;
import com.example.R;
import java.io.IOException;
import java.io.InputStream;
import android.content.Context;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.util.Log;

public class Synth {
private static final String TAG = Synth.class.getSimpleName();
private AudioTrack audioTrack;
private Context context;

public Synth(Context context) {
this.context = context;
int minBufferSize = AudioTrack.getMinBufferSize(22050, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);
audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 22050, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, minBufferSize, AudioTrack.MODE_STREAM);
}
public void playSound() {
audioTrack.play();
int i = 0;
int bufferSize = 512;
byte [] buffer = new byte[bufferSize];
InputStream inputStream = context.getResources().openRawResource(R.raw.mysample);
try {
int writes = 0;
while((i = inputStream.read(buffer)) != -1) {
writes++; audioTrack.write(buffer, 0, i);
}
Log.d(TAG, "Wrote " + writes + " times." );
} catch (IOException e) {e.printStackTrace();}
try {inputStream.close();} catch (IOException e) {e.printStackTrace();}
}
}

(要复制项目:创建新项目,包括此类,添加下面提到的音频,创建 Synth 的实例,然后触发 playSound 公共(public)函数)

显然我不能上传音频,或者保证它在网络文件夹中的持久性,但是 this tool will generate a WAV file exactly like I am using (将采样率更改为 22.05kHz 并按“下载 .wav 文件”)

我意识到 STREAM_MUSICMODE_STREAM 在此示例中似乎不合适。我正在使用这些标志/模式,因为我知道我需要在以后的开发中将 AudioTrack 与这些模式一起使用,并且实际上只是暂时尝试让声音从设备中传出。

任何人都可以建议调试步骤,或者看看播放有什么问题吗?任何帮助表示赞赏。

最佳答案

当我第一次提出这个问题时,我已经确定了我最初遇到的问题。希望它能帮助其他人......

Android phone volumes

事实证明,当我调整音量时应用程序没有播放音频,所以实际最大的音量是系统/铃声音量,而不是“音乐、视频游戏和其他”媒体的音量,已静音。

关于java - MODE_STREAM 中的 AudioTrack 没有声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31354338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com