当前位置: 首页 > 面试题库 >

使用Ajax设置html5媒体源

夏令秋
2023-03-14
问题内容

我需要帮助从外部服务器获取的音频文件的身份验证标头。所以现在我正在尝试使用Ajax,我可以很好地抓取文件,但是无法将它们设置为播放器的媒体源。您如何将ajax加载的文件设置为音频源?

编辑

最后修复它,以防有人以这种方式回来。

if (this.mAudioPlayer.canPlayType("audio/mpeg")) {
    this.mExtension = '.mp3';
}else if (this.mAudioPlayer.canPlayType("audio/ogg")) {
    this.mExtension = '.ogg';
} else if (this.mAudioPlayer.canPlayType("audio/mp4")) {
    this.mExtension = '.m4a'; 
}

this.CreateAudioData = function() {

    //downloading audio for use in data:uri
    $.ajax({
        url: aAudioSource + this.mExtension + '.txt',
        type: 'GET',
        context: this,
        async: false,
        beforeSend: function(xhr) {xhr.setRequestHeader('Authorization', window.userId);},
        success: this.EncodeAudioData,
        error: function(xhr, aStatus, aError) { HandleError('Audio Error: ' + aStatus); }
    });
};

this.EncodeAudioData = function(aData) {
    //this.mAudioData = base64_encode(aData);
    this.mAudioData = aData;

    if (this.mExtension == '.m4a') {
        Debug("playing m4a");
        this.mAudioSrc = "data:audio/mp4;base64," + this.mAudioData;
    } else if (this.mExtension == '.ogg') {
        Debug("playing ogg");
        this.mAudioSrc = "data:audio/ogg;base64," + this.mAudioData;
    } else if (this.mExtension == '.mp3') {
        Debug("playing mp3");
        this.mAudioSrc = "data:audio/mp3;base64," + this.mAudioData;
    }

};

this.play = function() {

    if (this.mAudioPlayer.src != this.mAudioSrc) {
        this.mAudioPlayer.src = this.mAudioSrc;
    }
    this.mAudioPlayer.load();
    this.mAudioPlayer.play();
};

不得不执行asynch:false,否则我会得到一小部分音频,而不是全部音频。尽管删除了异步,最终使调试变得更加容易。


问题答案:
if (this.mAudioPlayer.canPlayType("audio/mpeg")) {
    this.mExtension = '.mp3';
}else if (this.mAudioPlayer.canPlayType("audio/ogg")) {
    this.mExtension = '.ogg';
} else if (this.mAudioPlayer.canPlayType("audio/mp4")) {
    this.mExtension = '.m4a'; 
}

this.CreateAudioData = function() {

//downloading audio for use in data:uri
$.ajax({
    url: aAudioSource + this.mExtension + '.txt',
    type: 'GET',
    context: this,
    async: false,
    beforeSend: function(xhr) {xhr.setRequestHeader('Authorization', window.userId);},
    success: this.EncodeAudioData,
    error: function(xhr, aStatus, aError) { HandleError('Audio Error: ' + aStatus); }
  });
};

this.EncodeAudioData = function(aData) {
  //this.mAudioData = base64_encode(aData);
  this.mAudioData = aData;

  if (this.mExtension == '.m4a') {
    Debug("playing m4a");
    this.mAudioSrc = "data:audio/mp4;base64," + this.mAudioData;
  } else if (this.mExtension == '.ogg') {
    Debug("playing ogg");
    this.mAudioSrc = "data:audio/ogg;base64," + this.mAudioData;
  } else if (this.mExtension == '.mp3') {
    Debug("playing mp3");
    this.mAudioSrc = "data:audio/mp3;base64," + this.mAudioData;
  }

};

this.play = function() {

   if (this.mAudioPlayer.src != this.mAudioSrc) {
       this.mAudioPlayer.src = this.mAudioSrc;
   }
    this.mAudioPlayer.load();
    this.mAudioPlayer.play();
};

不得不执行asynch:false,否则我会得到一小部分音频,而不是全部音频。尽管删除了异步,最终使调试变得更加容易。



 类似资料:
  • 在本章中,我们将研究Joomla Media Settings 。 Joomla媒体设置有助于配置全局媒体文件选项,如文件格式,MIME规范,文件上传,文件大小等。 Joomla媒体设置 以下是用于设置Joomla媒体选项的简单步骤 - Step (1) - 进入System → Global Configuration ,如下面的屏幕所示。 单击Joomla Global Configurati

  • 我正在尝试向seekbar添加一个音频文件,该文件将由seekbar控制,而无需向我的应用程序添加任何按钮。音频文件将附加到seekbar,通过seekbar进程,音量将增加或减少。下面是我的代码,我的应用程序正在崩溃,一次又一次,我不知道为什么。请在这方面帮助我。 下面是我的日志错误

  • /** 是否开启超媒体吸底功能(默认开启) @param enableSnap enableSnap */ [Ntalker ntalker_setEnableSnap:NO];

  • /** 设置超媒体自定义参数 @param parameter 自定义参数 例如:@{@"token": @"18231yy31hh12",@"xxx": @"yyyy"} */ [Ntalker ntalker_setHyperMediaData:@{@"token": @"18231yy31hh12",@"xxx": @"yyyy"}];

  • 问题内容: 我将如何通过XSLT 将文件的doctype 干净地 设置为HTML5 (在这种情况下,使用Collective.xdv) 以下是我的Google foo能够找到的最好的结果: 产生: 问题答案: 我认为目前仅通过将文档类型写为文本来支持此操作: 这将产生以下输出:

  • 函数名称:设置媒体音量 函数功能: 设置媒体音量大小 函数方法 device.setMediaVolume(vol) 参数 类型 必填 说明 vol number 是 要设置的设备音量 函数用例 device.setMediaVolume(7) 注意事项 目前积木编程函数和触动精灵函数不通用,请仔细查看本手册,此手册中函数仅支持积木编程,不支持触动精灵,同理请勿将触动精灵函数在积木编程运行。