gpt4 book ai didi

javascript - PhoneGap (JS) - 多音频流

转载 作者:行者123 更新时间:2023-11-30 18:10:32 27 4
gpt4 key购买 nike

我一直在使用 PhoneGap 文档 (http://docs.phonegap.com/en/2.3.0/cordova_media_media.md.html#media.play) 中的这段代码来播放音频文件:

    // Audio player
//
var my_media = null;
var mediaTimer = null;

// Play audio
//
function playAudio(src) {
if (my_media == null) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);
} // else play current audio
// Play audio
my_media.play();

// Stop audio
//
function stopAudio() {
if (my_media) {
my_media.stop();
}
clearInterval(mediaTimer);
mediaTimer = null;
}

所以我可以使用 onclick 事件播放音频:

playAudio('http://example.com/file.mp3');

并停止它:

停止音频();

这工作正常,但我想播放多个流并通过参数“名称”控制它们。

所以我改变了我的代码:

    // Audio player
//
var my_media = null;
var mediaTimer = null;

// Play audio
//
function playAudio(name,src) {
if (my_media == null) {
// Create Media object from src
my_media = new Media(name, src, onSuccess, onError);
} // else play current audio
// Play audio
my_media.play(name);

// Stop audio
//
function stopAudio(name) {
if (my_media) {
my_media.stop(name);
}
clearInterval(mediaTimer);
mediaTimer = null;
}

//播放和停止文件 1:playAudio('file1','http://example.com/file.mp3');

stopAudio('file1');

//播放和停止文件 2:

playAudio('file2','http://example.com/file2.mp3');

stopAudio('file2');


我唯一收到的是应用程序崩溃,有没有人有在 PhoneGap 上播放多个媒体文件的经验?

谢谢!

最佳答案

基于 Cordova 2.3 文档:

Media 对象构造函数期望第一个参数为“src”,但您使用它来设置播放器的媒体名称,而不是将您的名称视为媒体源并尝试使用“file1”作为路径媒体文件

附加:phonegap Media play() 和 stop() 方法不需要参数,因此您在这些方法调用中提供的名称将被忽略

您可以尝试创建媒体播放器的二维数组,其中每行中的第一个元素是名称,第二个元素是媒体对象。比在你的 playAudio 和 stopAudio 函数中按名称扫描数组并在正确的对象上调用 play() 和 stop() 方法

在复制和粘贴下面的代码之前,请记住我完全不确定在 phonegap 中是否可以播放多个音频文件。我知道移动版 Safari 音频元素不支持它:http://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Using_HTML5_Audio_Video.pdf#page21

var my_medias = new Array();
...
playAudio(name,arc){
var createnew = true;
for(var i=0;i<my_medias.length;I++){
if(my_medias[0]==name){
my_medias[1].play();
createnew=false;
}
}
if(createnew){
my_medias.push([name,new Media(src,onError,onSuccess)]);
}
}

stopAudio(name){
for(var i=0;i<my_medias.length;I++){
if(my_medias[0]==name){
my_medias[1].stop();
}
}
...

}

关于javascript - PhoneGap (JS) - 多音频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14673011/

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