草庐IT

m_audioTrack

全部标签

Android AudioTrack 在声音开始和结束时点击

我在播放声音(来自SD卡的wav)的开始和结束时听到咔嗒声。这一定与轨道缓冲有关,但我不知道解决方案。另外,每次播放声音时我都会创建一个新的,这样可以吗还是有更好的方法?有许多声音一遍又一遍地播放。这是代码:publicvoidPlayAudioTrack(finalStringfilePath,finalFloatf)throwsIOException{newThread(newRunnable(){publicvoidrun(){//playsoundhereintminSize=AudioTrack.getMinBufferSize(44100,AudioFormat.CHANN

android - 使用 AudioTrack 从 SD 卡播放音频(mp3、ogg)

我想用AudioTrack播放SD卡中的音频文件。我试过这段代码:intminBufferSize=AudioTrack.getMinBufferSize(8000,AudioFormat.CHANNEL_CONFIGURATION_MONO,AudioFormat.ENCODING_PCM_16BIT);intbufferSize=512;AudioTrackat=newAudioTrack(AudioManager.STREAM_MUSIC,8000,AudioFormat.CHANNEL_CONFIGURATION_MONO,AudioFormat.ENCODING_PCM_16

android - AudioTrack 可以播放 MIDI 文件吗?

我想知道AudioTrackAndroid可以播放MIDI文件吗?如果没有,哪个图书馆可以。因为我想要Android库可以为我的应用播放和控制MIDI文件的速度。 最佳答案 从这里检查Android支持的媒体格式AndroidMediaSupport.MIDI播放支持内置于Android中。使用JetPlayer播放MIDI文件在android中非常方便。要播放MIDI文件,您必须编写以下代码:JetPlayerjetPlayer=JetPlayer.getJetPlayer();jetPlayer.loadJetFile("/sd

android - 如何将 16 位 .wav 音频文件读入适合写入 Android AudioTrack 的缓冲区?

SDK中是否有javax.sound.sampled.AudioFormat和相关内容的替代品,允许您打开.wav文件并从中提取PCM样本?或者我真的需要实现自己的编解码器吗? 最佳答案 您可以尝试使用OpelSLES(以native代码编程)。您可以根据需要进行音频操作,非常推荐用于音频处理。 关于android-如何将16位.wav音频文件读入适合写入AndroidAudioTrack的缓冲区?,我们在StackOverflow上找到一个类似的问题: ht

Android - AudioTrack setStereoVolume() 不工作

我有一个类使用AudioTrack按特定频率生成声音。一切正常,但现在我想对其进行自定义,以便我只能在耳机右侧或耳机左侧播放声音。(右耳或左耳)所以我发现AudioTrack有这样一个方法:setStereoVolume(),然而,当我配置它的时候,例如这样:audioTrack.setStereoVolume(1.0f,0.0f),我希望只有我的耳机左侧应该发声,右侧应该是静音,但没有效果。我可以在耳机的左右两侧听到相同音量的声音。我检查了setStreamVolume()的返回值,它是0,这与SUCCESS相等,但我仍然听不出有什么不同。您知道它为什么不起作用,或者我可以指定仅在耳

java - 来自 AudioTrack 流的通知消息

我已经实现了一个写入AudioTrack对象的PCM解码器。一切似乎都很好,但是,当最后写入的block停止播放时,我需要从AudioTrack对象获得某种通知。我注意到有回调方法,例如setNotificationMarkerPosition,但是,我找不到任何关于如何使用它们的详尽文档。提前致谢! 最佳答案 要获得AudioTrack回调,您可以设置标记回调或使用定期回调。我已经看到有关标记问题的报告,因此您可能想同时尝试这两种方法。对于标记回调,首先调用setNotificationMarkerPosition并使用您想要调用

android - 在 Eclipse 上通过缓冲区使用 AudioTrack 缓冲区播放音乐 - 没有声音

我正在为Android2.1编程。你能帮我解决以下问题吗?我有三个文件,一般目的是通过buffer.buffer来播放带有audiotrack的声音。我在这里变得非常绝望,因为我尝试了所有方法,但我的扬声器仍然没有声音(而android的集成媒体播放器通过模拟器播放声音没有问题)。源代码:音频播放器类,实现音轨。它将接收一个缓冲区,其中包含声音。publicAudioPlayer(intsampleRate,intchannelConfiguration,intaudioFormat)throwsProjectException{minBufferSize=AudioTrack.get

Android:多次播放 AudioTrack 产生崩溃

我正在尝试使用AudioTrack播放音频缓冲声音(.wav)。请看下面的代码。我需要在一个线程下调用这个函数来支持同时播放。在线程下很好。正常播放声音效果很好。但是,如果我连续一个接一个地使用AudioTrack执行播放声音(即在完成第一次播放声音之前执行第二次播放),则会导致设备崩溃(强制关闭意外错误)。有没有人遇到过这样的问题并以某种方式解决它?privatevoidPlayAudioTrack(StringfilePath)throwsIOException{if(filePath==null)return;byte[]byteData=null;Filefile=null;f

java - 如何在不崩溃的情况下处理从 jni 对 AudioTrack 的调用?

我试图从jni回调写入AudioTrack,我收到信号7(SIGBUS),故障地址00000000。我查看了odroid的Wolf3D示例他们似乎使用android.os.Handler来发布一个Runnable,它将在正确的线程上下文中进行更新。我也尝试过AttachCurrentThread,但在这种情况下我也失败了。它可以在从构造函数运行时播放声音,即使我将它包装在一个线程中,然后将它发布到处理程序。当我通过jni的回调执行“相同”操作时,它失败了。我假设我正在违反一些规则,但我一直无法弄清楚它们是什么。到目前为止,我还没有在SO上找到答案。所以我想知道是否有人知道应该怎么做。编

android - 使用 Android 的 AudioTrack 组合声音样本的字节会产生噪音

我正在构建一个相当简单的Android应用程序(sdk修订版14:ICS),它允许用户一次选择两个音频剪辑(都是RIFF/WAV格式,little-endian,签名的PCM-16位编码)和以各种方式组合它们以创造新的声音。我用于此组合的最基本方法如下://...soundsamplesarereadintomemoryasrawbytearrayselsewhere//...offsetiscurrentlysetto45soastoskipthe44byteheaderofbasic//RIFF/WAVfiles...//Actualcombinationmethodpublicb