我有一个小应用程序,可以播放顺序的声音(一个教学应用程序,播放一个单词的声音)
这可以通过在每个声音停止播放后立即触发事件来实现。类似于:
var sounds = new Array(new Audio("1.mp3"), new Audio("2.mp3"));
var i = -1;
playSnd();
function playSnd() {
i++;
if (i == sounds.length) return;
sounds[i].addEventListener('ended', playSnd);
so
我在iOS上遇到了一个奇怪的问题。
我正在使用Ionic Native Media插件录制音频,并尝试使用HTML5 Web audio API (WavesurferJS或HowlerJS)播放录制的内容。在我录制音频之后,如果我尝试立即播放录制的音频,音频将不会播放,但如果我关闭应用程序,然后重新打开它,音频将正常播放。
HowlerJS抛出的错误是“解码音频时出错”。我的想法是原生媒体插件没有完全释放文件,因此没有授予HowlerJS读取音频数据的权限。
任何想法或方向都是值得感谢的。
我一直在为OpenAL使用Win32软件,我遇到了一个特殊的问题。
我的目标是播放一个循环的声音,其中有一个一次性的介绍部分,类似于一个带有循环标记的.WAV文件。据我所知,这必须在OpenAL中通过在源上使用多个缓冲区来实现。通常,我的方法是将两个缓冲区排队,然后等待第二个缓冲区播放,并将源设置为循环。这是可行的,但问题是,一旦我准备好停止声音,我似乎无法解除队列的最后一个缓冲区。我的代码大致如下所示:
// set up the sound
alSourceQueueBuffers(source, 1, &buffer1);
alSourceQueueBuffers(source,
我使用这样的媒体:
var my_media = new Media(src);
my_media.play()
大多数声音剪辑都很短,比如2-3秒.当用户单击play声音按钮时,我会播放声音。如果我继续按play,Mediaplayer崩溃什么的,声音就停止播放,在Eclips中,它的意思是:无法创建媒体播放器.
该应用程序仍然工作,但所有的声音在应用程序停止播放。
我正在开发我的应用程序,它可以通过前置扬声器或后置扬声器播放声音文件,并且可以“即时”更改。代码如下:
// mediaPlayer was created previously and then started to play ok
private void switchTarget() {
int pos = 0;
try {
if (mediaPlayer.isPlaying()) {
pos = mediaPlayer.getCurrentPosition();