【问题标题】:Titanium: Sounds overlapping each other钛:声音相互重叠
【发布时间】:2013-07-31 14:05:45
【问题描述】:

对不起,如果这看起来像一个菜鸟问题,但我是钛的新手,所以有些概念对我来说是陌生的。

我有一个名为 entry.js 的脚本,它是使用 require('entry.js') 从 details.js 调用的。

现在在 entry.js 中,我根据选择的条目播放声音。

    var player = Ti.Media.createSound({url:"/sounds/0"+e.id+".mp3"});
    player.play();

那部分没问题。问题是当我返回详细信息屏幕并选择另一个条目时,新声音与旧声音重叠。

所以我需要一个可以传递给 entry.js 的全局值或对象,以确保声音是否正在播放。

但是如果我在 details.js 中声明一个全局 TI.Media 对象,我会在 entry.js 中得到一个错误: 找不到变量播放器

所以问题是,我如何在子 javascript 文件中检测到音频实例已经在运行?

【问题讨论】:

    标签: audio titanium


    【解决方案1】:

    您可以使用isPlaying() method 检查音频是否正在播放,或者在返回详细信息屏幕时尝试停止播放音乐。您可以使用stop() method 来停止声音。它将停止播放音频并将播放位置重置为剪辑的开头。

    如果要创建全局变量或将变量从一个窗口传递到另一个窗口,请参考以下链接

    1. Passing parameters from currentWindow to the new window in Titanium

    2. Passing variable between windows

    【讨论】:

    • isPlaying 和 stop 不起作用,因为播放器是在子页面级别定义的,它没有检测到它正在播放。
    • 我正在尝试将参数传递给当前窗口,但对于我的生活来说,它不起作用。我在最后一个窗口中一直未定义。
    • 尝试使用 Ti.App.Properties 创建应用变量
    • 我使用的是厨房水槽示例,我猜它太分段了,无法以这种方式工作。我现在将所有代码放在一个窗口中,我感觉它会起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多