jjzjj

audioTracks

全部标签

android - AudioTrack、SoundPool 或 MediaPlayer,我应该使用哪个?

如果我需要能够使用AudioTrack、SoundPool或MediaPlayer:播放多个持续时间不同的音频文件,例如5到30秒。独立设置右/左声道的音量。应用音效,例如混响/失真。那么,我应该使用哪个API?另外,我在AudioTrackAPI上找不到太多文档。有谁知道我在哪里可以找到示例? 最佳答案 SoundPool实际上是一个混音器。它只能播放短片,无论它们是编码为“ogg”还是“mp3”还是未压缩。SoundPool始终将它们存储在未压缩的内存中,并注意限制为1MB。如果您的剪辑在内存中太大,SoundPool将静音,您

Android使用AudioTrack播放WAV音频文件

目录1、wav文件格式2、wav文件解析3、wav文件播放QA:开始播放wav的时候使用了系统的播放器mediaplayer进行播放,但是无奈mediaplayer支持的实在不好。好些年前自己做过pcm播放使用的是audiotrack,参考:Android利用AudioTrack播放PCM格式音频_mldxs的博客-CSDN博客其实WAV和PCM两者之间只差了一个wav文件头而已,所以实现了一套audiotrack播放wav的功能。同时支持本地文件播放和网络文件播放1、wav文件格式参考了:wav文件格式解析_全职编码的博客-CSDN博客_wav文件格式 其中对我们比较重要的字段:NumCha

android - 无法在 Audiotrack 对象 : android 上暂停

在我的应用程序中,我已经成功录制了音频,现在我正在使用以下函数播放它:publicvoidplayfile(){System.out.println("PlayPressed");speechLength=(int)(file.length()/2);speech2=newshort[speechLength];try{//CreateaDataInputStreamtoreadtheaudiodatabackfromthesavedfile.InputStreamis=newFileInputStream(file);BufferedInputStreambis=newBuffere

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