tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-05-03
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
阅读:1928回复:8

downloadSoundPlay脚本声音文件怎样设置路径跟随配置文件夹

楼主#
更多 发布于:2014-04-12 11:55
这是脚本参数
var downloadPlaySound = {
  // -- config --
  DL_START : null,
  DL_DONE : "file:///C:/FF28/downfinished.wav",
  DL_CANCEL: null,
  DL_FAILED: null,
  // -- config --
想将声音文件放到火狐配置文件夹根目录下,设置为全路径的话好办,file:///C:/FF28/downfinished.wav,但是我每次升级火狐,都新设一个配置文件夹,如升级到29,配置文件夹就会改名为FF29,这样的话,脚本也得修改路径,想问问有没有类似 %Windir% %SystemRoot% 这样的能代替file:///C:/FF28的参数?谢谢!
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
1楼#
发布于:2014-04-12 13:21
playSoundFile: function(aFilePath) {
  var ios = Components.classes["@mozilla.org/network/io-service;1"]
            .createInstance(Components.interfaces["nsIIOService"]);
  try {
    var uri = ios.newURI(aFilePath, "UTF-8", null);
  } catch(e) {
    return;
  }
  var file = uri.QueryInterface(Components.interfaces.nsIFileURL).file;
  if (!file.exists())
    return;
     
  this.play(uri);
 },
你可以把脚本上面的播放方法改成
playSoundFile: function(uri) {
  this.play(uri);
 },
然后用base64串替代路径
-いたんですか? -ええ、ずっと
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-05-03
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
2楼#
发布于:2014-04-12 13:51
白左:playSoundFile: function(aFilePath) {
  var ios = Components.classes["@mozilla.org/network/io-service;1"]
            ....
回到原帖
不明白,比如我上面提到的路径怎样用base64串替代路径?
lonely_8
非常火狐
非常火狐
  • UID30273
  • 注册日期2009-09-03
  • 最后登录2022-08-09
  • 发帖数733
  • 经验469枚
  • 威望0点
  • 贡献值86点
  • 好评度147点
  • 社区居民
  • 忠实会员
3楼#
发布于:2014-04-12 15:28
var {classes:Cc, interfaces:Ci} = Components;
var ProfD = Cc['@mozilla.org/network/io-service;1'].getService(Ci.nsIIOService2).newFileURI(Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("ProfD", Ci.nsIFile)).spec;
var downloadPlaySound = {
  // -- config --
  DL_START : null,
  DL_DONE : ProfD + "downfinished.wav",
  DL_CANCEL: null,
  DL_FAILED: null,
  // -- config --
改成上面那样
其中ProfD就是当前配置的路径即:“file:///C:/FF28/”。
更多的“相对路径”参考
https://developer.mozilla.org/en-US/Add-ons/Code_snippets/File_I_O#Getting_files_in_special_directories
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-05-03
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
4楼#
发布于:2014-04-12 16:24
lonely_8:var {classes, interfaces} = Components;
var ProfD = Cc['@mozilla.org/network/io-service;1'].getService(Ci.nsIIOService2...
回到原帖
成功了,感谢
lonely_8
非常火狐
非常火狐
  • UID30273
  • 注册日期2009-09-03
  • 最后登录2022-08-09
  • 发帖数733
  • 经验469枚
  • 威望0点
  • 贡献值86点
  • 好评度147点
  • 社区居民
  • 忠实会员
5楼#
发布于:2014-04-12 16:53
tulip17:成功了,感谢回到原帖
不好意思,第一行写错了。
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-05-03
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
6楼#
发布于:2014-04-12 19:24
lonely_8:不好意思,第一行写错了。回到原帖
嘿嘿,没影响正常发声
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-05-03
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
7楼#
发布于:2014-04-12 19:25
白左:playSoundFile: function(aFilePath) {
  var ios = Components.classes["@mozilla.org/network/io-service;1"]
            ....
回到原帖
【用base64串替代路径 】能详细说说吗?
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
8楼#
发布于:2014-04-12 19:56
tulip17:【用base64串替代路径 】能详细说说吗?回到原帖
http://en.wikipedia.org/wiki/Data_URI_scheme
-いたんですか? -ええ、ずっと
游客

返回顶部