我正在使用SoundPool在我的应用程序中播放音频剪辑。一切都很好,但我需要知道剪辑播放何时结束。目前我通过使用MediaPlayer获取每个剪辑的持续时间在我的应用程序中跟踪它实例。这工作正常,但加载每个文件两次看起来很浪费,只是为了获得持续时间。我可以粗略地计算自己知道文件长度的持续时间(可从AssetFileDescriptor获得),但我仍然需要知道采样率和channel数。我看到了该问题的两个潜在解决方案:确定剪辑何时播放完毕(SoundClip似乎无法实现)。有一个类可以只加载音频文件的标题并提供采样率/channel数(理想情况下,提供采样数以获得准确的持续时间)。有什
我的Android应用程序在SurfaceHolder上使用MediaRecorder来显示相机正在捕获的内容的实时预览。每次用户按下应用程序上的REC按钮时,应用程序就会开始录制。每次MediaRecorder的状态切换到“开始”或从“开始”切换时,Android都会自动(?)发出哔声。这种蜂鸣声因手机而异,这让我认为这种蜂鸣声本身与MediaRecorder的状态变化有关。如果手机音量设置为静音,则不会播放提示音。我用谷歌搜索并做了一些研究,但找不到关闭此提示音的方法。可能吗?如果是,怎么办?该应用已在以下平台上测试:NexusOne2.3.4、DesireHD2.3.3
是否可以在Android中注册一个监听器来监听音乐流音量的变化?我在SeekBar中显示实际音量,如果用户使用硬件音量键更改音量,我想更改搜索栏。此时会显示正确的音量,直到用户使用硬件键更改音量。 最佳答案 这不是一个完美的答案,而是一个hack:android.media.VOLUME_CHANGED_ACTION我在通过硬音量键更改音量时在native日志中发现了上述操作。01-2516:11:24.015:DEBUG/VolumePanel(189):onVolumeChanged(streamType:2,flags:4)0
Stagefrigh媒体框架(Android2.2)支持HTTP渐进式流。那是什么意思?IE。这是HTTPLiveStreaming协议(protocol)实现吗?以及如何在Android上使用HTTPLiveStreaming,我的意思是客户端是什么-网络浏览器、MediaPlayer或只是“in-SDK”实现,我必须从某个类继承? 最佳答案 一个很大的实际差异是Stagefright媒体框架支持mpeg3流,而旧引擎不支持。例如,您可以使用(shoutcast)mp3streams。这是一个简单的实现示例,它流式传输一个shou
我有一个应用程序,其中有多个线程,每个线程都注入(inject)一个单独的AudioTrack设置为MODE_STREAM。在应用程序之间切换工作正常,当应用程序正常关闭时,它似乎正确关闭了所有内容。但是,如果应用程序在外部终止,例如从调试器终止,或者因为我刚刚在旧版本运行时安装了新版本,似乎全局AudioMixer中的某些状态变得困惑,我得到logcat输出如下:09-1614:50:38.9652987150WAudioTrack:obtainBuffertimedout(istheCPUpegged?)0x83c2348user=00000eb3,server=000000000
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion处理音频以便输出正在播放的音符的最佳方法是什么?我正在为一项大学作业创建吉他调音器,我是Android开发的新手。我看过关于从GoogleAPI录制声音的Android示例,但我想知道从那里去哪里?我知道我必须进行傅里叶变换或其他操作才能获得频率,只是想知道是否有人对如何执行此操作有任何建议?一旦我们能够在屏幕上显示正确的频率,我们的大部分项目就完成了。感谢您的帮助。
我想在我制作的应用程序中播放背景声音。帮帮我,我该怎么做?...这是完整的代码。publicclassNumbersextendsActivity{publicstaticMediaPlayermp=null;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_numbers);ViewPagerviewPager=(ViewPager)findViewById(R.id.view_page
我能够毫无问题地流式传输音频并停止它,但是当我尝试在停止后再次启动它时,它没有启动并且我得到一个IllegalState异常。这是我正在做的:开始播放mediaPlayer.setDataSource(PATH);mediaPlayer.prepare();mediaPlayer.start();停止播放mediaPlayer.stop现在,如果我想再次开始播放相同的媒体,我需要做什么?*PATH是一个持续运行的电台的URL。 最佳答案 如果您无权访问当前范围内的数据源,您可以:mp.pause();mp.seekTo(0);然后当
我有一个可以录制和播放音频文件的应用程序。一些音频文件是使用httpclient使用简单的标准http下载来下载的。很长一段时间,它就像一个魅力。现在突然间我无法播放我下载的文件。此堆栈失败。我将文件存储在SDCard上,但在手机和USB连接设备上都遇到了问题。我已经检查过下载的文件在服务器上没有问题,我可以毫无问题地播放它。这些是我使用的代码fragment(我知道recordingFile是该文件的有效路径)。//insidetheactivityclassprivatevoidplayRecording()throwsIOException{FilerecordingFile=n
我创建了一个ContentProvider。它导出我的assets/目录中的文件。我正在使用content://urls访问WebView中导出的内容。以下HTML按预期工作:/test.jpg">我正在尝试将内容提供程序用于mp3音频文件:url="content:///test.mp3";varaudio=document.createElement('audio');audio.src=url;audio.controls="controls";document.getElementById("player").appendChild(audio);我收到以下错误消息。E/Med