我正在为三星智能电视开发一个简单的游戏。我想在某些事情发生时播放小声音文件,比如准备好、赢、输。我不想处理 Flash 播放器、播放器控件.. 有没有办法使用 javascript 来触发具有预定义音量的播放声音动作,我想在我的代码中多次执行此操作。
问问题
5713 次
3 回答
8
您需要将播放器对象 ( SAMSUNG-INFOLINK-PLAYER
) 添加到您的<body>
标签中:
<object id="pluginPlayer" style="visibility: hidden; width: 0px; height: 0px; opacity: 0.0" classid="clsid:SAMSUNG-INFOLINK-PLAYER"></object>
然后在应用程序的 javascript 中使用这个函数:
var playerObj = document.getElementById('pluginPlayer');
playerObj.Play("absolute_url_to_your_mp3");
由于播放器插件在三星文件系统内的不同位置执行,您需要始终使用文件的绝对路径。它可以是远程的,但您可以使用location.href
您的应用程序index.html
来获取应用程序工作目录的绝对本地路径,您可以在其中放置 mp3。
检查文档,在这里:
于 2012-04-13T09:46:07.390 回答
5
这是我的解决方案:
添加到index.html文件
<body>
<object id="pluginPlayer" border=0 classid="clsid:SAMSUNG-INFOLINK-PLAYER">
...
...
...
</body>
在我的 .js 文件Scene1.js 中
SceneScene1.prototype.initialize = function () {
var Player = document.getElementById('pluginPlayer');
var retVal=Player.Play("http://mysite.com/android/smartTV/little_wing.mp3");
...
...
...
}
于 2012-06-27T15:44:15.293 回答
1
我将 SDK 5.1 版用于 2013 年和 2014 年型号的电视,并且我有以下代码工作:
<object id="pluginPlayer" classid="clsid:SAMSUNG-INFOLINK-PLAYER"></object>
var playerObj = document.getElementById('pluginPlayer');
var fileName = location.pathname.substring(location.pathname.lastIndexOf("/") + 1);
playerObj.Play(document.location.href.split(fileName)[0] + 'test.mp3');
这种替代方法也有效(使用 Flash):
<div style="position:absolute; z-index:-1;">
<object type="application/x-shockwave-flash" width="100" height="50" id="fplayer">
<param name="movie" value="test.swf"/>
<param name="quality" value="high"/>
<param name="bgcolor" value="blue"/>
</object>
</div>
非常感谢 Dobiatowski!
于 2015-01-22T06:31:09.340 回答