在我的反应应用程序中使用SC.stream,我只是试图从soundcloud API播放一首曲目.这是我的代码:
SC.initialize({
    client_id: '12xxx' // my client ID
  });

//[...]

console.log(this.props.track.trackId); // I get here successfully the trackId from the song I'd like to play

SC.stream('/tracks/'+this.props.track.trackId,function(track){
  track.play();
  console.log(track); // I successfully get the track object here. playState attribute is on 1 
});

不幸的是,曲目从未开始播放.我在控制台中没有错误.

编辑:问题仅在Chrome上,它在firefox和safari上完美运行.我现在更加困惑.

编辑2:它似乎与不在Chrome上运行的HTML5播放器相关联:当您在chrome:// plugins /重新启用Flash播放器时,通过选中“始终允许运行”,它可以正常工作

解决方法

当你有track.play()时,我不确定代码中的“track”是什么意思.如果它是音频div那么这应该有帮助.
class PlayerCtrlRender extends React.Component {
   render() {
    let index = this.state.playIndex;
    let currentTrack = this.state.randomOn ? this.state.shuffledQueue[index] : this.props.queue[index];
    let source = 'http://192.168.0.101:3950/play/' + currentTrack.location;
    let title = currentTrack.title;

    let progressData = {count: this.state.progressCount * 100,index: this.state.progressIndex * 100};
    return (
      <div id='PlayerCtrlSty' style={PlayerCtrlSty}>
        <div className='FlexBox'>
          <div style={timerLeftSty}>{this.state.progressIndex}</div>
          <PlayerActions playing={this.state.isPlaying} clickHandler={this.clickHandler}/>
          <div style={timerRightSty}>{this.state.progressCount}</div>
        </div>
        <JProgressBar data={progressData} position='none' />
        <div id="title" style={{textAlign: 'center'}}>{title}</div>
        <audio
          ref="audioDiv"
          src={source}
          onDurationChange={this.onDurationChange}
          onTimeUpdate={this.onTimeUpdate}
          onEnded={this.nextSong}
        />
      </div>
    );
  }
}

export default class PlayerCtrl extends PlayerCtrlRender {
  constructor() {
    super();
    this.state = {
      playIndex: 0,queueLength: 1,isPlaying: false,progressCount: 0,progressIndex: 0,shuffledQueue: [{title: '',location: ''}],randomOn: false
    };
  }

  componentDidMount = () => {
    let queue = knuthShuffle(this.props.queue.slice(0));
    this.setState({queueLength: queue.length,shuffledQueue: queue});
    this.refs.audioDiv.volume = .1;
  }
  clickHandler = (buttonid) => {
    this.refs.audioDiv.autoplay = false;
    switch (buttonid) {
      case 'play': this.refs.audioDiv.play(); this.setState({isPlaying: true}); break;
      case 'pause': this.refs.audioDiv.pause(); this.setState({isPlaying: false}); break;
      case 'back': this.refs.audioDiv.currentTime = 0; break;
      case 'next': this.nextSong(); break;
      case 'random': this.refs.audioDiv.autoplay = this.state.isPlaying;
          this.setState({randomOn: !this.state.randomOn}); break;
    }
  }
  nextSong = () => {
    this.refs.audioDiv.autoplay = this.state.isPlaying;
    this.refs.audioDiv.currentTime = 0;
    let newIndex = this.state.playIndex + 1;
    if (newIndex == this.state.queueLength) newIndex = 0;
    this.setState({playIndex: newIndex});
  }
  onDurationChange = () => {
    let duration = this.refs.audioDiv.duration;
    duration = getTime(Math.floor(duration));
    this.setState({progressCount: duration})
    this.setState({progressIndex: 0})
  }
  onTimeUpdate = () => {
    let currentTime = this.refs.audioDiv.currentTime;
    currentTime = getTime(Math.floor(currentTime));
    this.setState({progressIndex: currentTime})
  }
}

javascript – 调用play()时,Soundcloud流,soundmanager2对象永远不会在Chrome上开始播放的更多相关文章

  1. ios – 不从stream_url SoundCloud API播放声音

    我可以在表格视图中显示歌曲,但我无法播放.点击获取曲目按钮时,这是我的代码这是我在tableview中的didselect中的代码:解决方法由OP解决:

  2. 在IOS应用程序中播放SoundCloud文件

    使用提供的快速入门指南想在IOS应用程序中播放SoundCloud轨道.提供播放流的代码如下:问题:有没有一种方法可以播放SoundCloud文件而无需先登录到您的SoundCloud帐户?我们希望所有用户都考虑使用SoundCloud–但是,如果新用户之前可以收听多个曲目,那么可用性是有用的.解决方法要使用IOSSoundcloudSDK进行公共访问,您需要将SoundcloudclientID作为参数添加到请求字符串中:然后,当withAccount:参数为nil时,它将适用于公共轨道.更优雅的是,你

  3. ajax – 导航时soundcloud如何保持音乐播放?

    我想知道如何在网页之间导航时,soundcloud可以无缝播放音乐.有可能他们使用Ajaxcuz的顶部栏似乎没有重新加载导航,但我看到URL更改.有没有办法使用Ajax加载内容并将URL设置为另一个?

  4. 如何使用soundcloud Sdk iOS搜索曲目

    我已经阅读了适用于iOS的soundcloudsdk文档,虽然它谈到了从现有的soundcloud用户列出曲目,但它似乎没有说到搜索歌曲.那么有没有资源或示例?

  5. javascript – SoundCloud如何暂停其他选项卡?

    如果您有两个浏览器选项卡打开到Soundcloud页面或带有SoundcloudiFrame的页面,一个选项卡播放,当您在其他选项卡中按播放时,它将暂停第一个.Howe到底是这样吗?解决方法它使用本地存储来实现这一点.它存储在每个标签中播放或暂停的所有歌曲的JSON数据.一旦播放另一首歌曲,所有其他歌曲的播放状态都将设置为暂停在本地存储中.最有可能的是,一个localStorage事件被触发,它检查哪些歌曲需要暂停并暂停.

  6. javascript – 为什么SoundCloud API看起来很残缺?

    我正在构建一个应用程序,并尝试使用’q’过滤器来使用API/轨道.这将查询SoundCloud并根据搜索条件检索歌曲.很简单.我的问题:与soundcloud.com本身的搜索功能相比,搜索功能似乎与使用/track一样残缺.结果似乎通过API质量低得多,而直接在网站上搜索可以获得高质量的结果.SoundCloud工程师可以对此发表评论吗?解决方法确保你使用’q’参数而不是’查询’.SC.get

  7. javascript – 调用play()时,Soundcloud流,soundmanager2对象永远不会在Chrome上开始播放

    在我的反应应用程序中使用SC.stream,我只是试图从soundcloudAPI播放一首曲目.这是我的代码:不幸的是,曲目从未开始播放.我在控制台中没有错误.编辑:问题仅在Chrome上,它在firefox和safari上完美运行.我现在更加困惑.编辑2:它似乎与不在Chrome上运行的HTML5播放器相关联:当您在chrome://plugins/重新启用Flash播放器时,通过选中“始终允许运行”,它可以正常工作解决方法当你有track.play()时,我不确定代码中的“track”是什么意思.如果

  8. 如何使用javascript创建Soundcloud播放列表(设置)?

    我正在尝试将Soundcloudapi用于我的应用程序,用户可以在其中创建自己的音轨播放列表.作为测试用例,我正在测试的示例几乎完全取自Soundclouddevdocs.下面是我的代码我已经在谷歌搜索了很多东西,但没有任何帮助我,实际上我需要临时播放列表所以当用户注销或关闭浏览器播放列表也删除.任何帮助都会很明显..thanx解决方法你能尝试发送client_secret=>‘YOUR_CLIENT_SECRET’作为初始化调用的一部分

  9. jquery – Soundcloud iframe在iOS下停止工作

    我已经编写了包含iframe中的一些soundcloud小部件的phoneGap/Cordova代码.该代码在Android和iOS下的桌面浏览器中运行良好.今天,iOS版本停止播放音乐.我也尝试在移动Safari和不同的iPhone和仿真器上运行代码,结果相同.所有其他平台仍然按照预期工作.Xcode控制台不显示任何不寻常的,但移动safari显示错误:我不知道这是否曾经在那里,但它是我能找到的最好的.这是代码的相应部分:我想知道这是否真的是一个跨域问题.帮助真的很感激.谢谢!

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部