【问题标题】:simple play sound from soundcloud by clicking button通过单击按钮从 soundcloud 简单地播放声音
【发布时间】:2015-08-16 15:03:38
【问题描述】:

正如它在 API 上所说,尝试从 soundcloud 在页面上流式传输声音,但不幸的是,当我单击按钮时没有声音。 否则,当我在这里或在 jsfiddle 上“运行”此代码时 - 它可以工作! 我试图从本地磁盘运行它一定有问题吗? 我该如何解决?

SC.initialize({
  client_id: '53902af7a344bb0351898c47bc3d786f'
});

 $("#stream").on("click", function(){
    SC.stream("/tracks/49712607", function(sound){
    sound.play();
    });
  });
<!DOCTYPE html>
<html>
<head>
    <title>music</title>
    <meta charset="windows-1251">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://connect.soundcloud.com/sdk-2.0.0.js"></script>
    <script src="script.js"></script>
</head>
<body>
       <div id='player'>player       
       <input type="button" href="#" id="stream" class="big button" value="Stream It Again, Sam" />
       </div>
 </body>
 </html>

【问题讨论】:

    标签: javascript jquery api soundcloud


    【解决方案1】:

    当您的文件托管在网络服务器上时,您需要执行对 SDK 的调用。但是您可以让 Web 服务器在您的本地计算机上运行。

    问题是试图从文件系统运行东西。这样做时,您会收到错误消息: NS_ERROR_DOM_BAD_URI:访问受限 URI 被拒绝

    为确保您确实遇到此错误,请尝试 SoundCloud 中的基本示例。

    另见this question

    然后,选择什么技术取决于您对什么感到满意...

    例如,我使用 Node.JS 开发大部分本地应用程序。也许最简单的方法是使用您评论中提到的 http-server。

    在命令行上启动它:http-server &lt;your-directory&gt; -o。使用 -o 您的默认浏览器将打开并列出 your-directory 中的文件。

    请注意,SoundCloud 文档正在使用 JQuery .live() 函数调用但它已被弃用!尽管 DOM 还没有准备好,但他们的代码仍然可以工作。

    在这里,您想使用常规的.on() 函数,并在 DOM 准备好后完成 click 事件处理程序的绑定。为此,您使用$(document).ready(function() { ... });

    这是我使用的代码。

    <!DOCTYPE html>
    <html>
    <head>
        <title>music</title>
        <meta charset="windows-1251">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
        <script src="//connect.soundcloud.com/sdk-2.0.0.js"></script>
        <script>
        SC.initialize({
            client_id: "53902af7a344bb0351898c47bc3d786f"
        });
    
        $(document).ready(function() {
            $("#stream").on("click", function(){
                SC.stream("/tracks/49712607", function(sound){
                    sound.play();
                });
            });
        });
        </script>
    </head>
    <body>
        <div id='player'>player       
            <input type="button" href="#" id="stream" class="big button" value="Stream It Again, Sam" />
        </div>
    </body>
    </html>
    

    【讨论】:

    • 感谢您的回答!我没有找到任何“易于理解”的安装和使用任何节点服务器的手册,所以我不明白如何使用您推荐的 Inertia Web 服务器。但是经过数小时的阅读和测试...... :) 我用npmjs.com/package/http-server 打开了我的页面,我很高兴!但是 - 音频流无论如何都不会播放。在控制台中没有错误或警告
    • 还有一件事 - 它是 jquery、soundcloud 和我自己的 js 控制台上的“HTTP/1.1 304 Not Modified”消息
    • 还尝试使用 anvilformac.com/index.html 启动站点 - 在 Web 控制台中的结果相同:打开站点、获取脚本和 soundcloud sdk,但无法通过单击按钮播放。
    • 我收到了the basic example 的错误消息。流代码完全沉默。我链接的问题是一年前的。也许事情已经改变了......无论如何,拒绝运行的不是SDK,而是SoundCloud服务器拒绝提供文件并发送错误消息(我已经检查了源代码)。如果我今天有时间来全面测试我的提议,我会尽快回复您。
    • 那太好了,注意在例子中他们使用旧的 src="//connect.soundcloud.com/sdk.js" 现在是 src="connect.soundcloud.com/sdk-2.0.0.js"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多