Coder Social home page Coder Social logo

online-ktv's Introduction

Agora Online KTV

场景描述

在线 K 歌房是 Agora 提供的线上 K 歌场景化解决方案,结合 Agora RTC SDK 和 Agora 内容中心等产品,将其复杂的 API 进行模块整合,实现了功能组件化,降低了开发门槛。在此方案中,歌房里的主播可以点歌成为主唱,跟随歌曲伴奏演唱给歌房内的听众。在演唱过程中: 主唱可以控制歌曲的暂停、播放和切换,并且可以自己调节伴奏和人声音量。 歌房内有歌词板块,唱歌时会根据歌曲播放进度显示对应的歌词。 Agora 内容中心提供热门歌曲曲库,连麦主播可以搜索想唱的歌曲,点歌并查看已点列表。 听众可以通过上麦点歌进行排麦演唱,并随时与房主和其他连麦主播进行实时音频互动。 房间内的角色及描述

角色 描述
房主 歌房创建者
连麦主播 进入歌房后,通过上麦成为连麦主播
主唱 连麦主播点歌后进行排麦演唱,正在演唱者成为主唱
听众 进入歌房的倾听者

在线 K 歌房场景化解决方案提供以下核心功能:

实时音频互动

超低延时下,听众实时接收房主和连麦主播的音频流,保证互动的流畅性。

互动连麦

听众可自主上麦成为连麦主播,房间内所有用户都可以实时观看麦上主播互动。

热门曲库

Agora 内容中心提供热门歌曲的曲库,曲库支持搜索功能。

点歌排麦

连麦主播从 Agora 内容中心点歌,歌曲进入已点列表;当同时上麦人数大于 1 时,根据每首点播歌曲的排麦顺序上麦演唱。

歌词模块

歌曲播放时,根据播放进度显示对应的歌词; 滑动歌词可以改变歌曲进度; 主唱可以改变歌词背景。

License

The MIT License (MIT).

online-ktv's People

Contributors

aslanchen avatar enough0 avatar guohai avatar hellonzx avatar lynnfirst avatar oojohn6oo avatar prwrl avatar sidsharma27 avatar tongjiangyong avatar xuchdeid avatar zxc524580210 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

online-ktv's Issues

Invalid Token error on joinChannel() call

Hello,
I am trying to run the project on iOS and I face a token issue, maybe because of my misunderstanding.
I have set up correctly my AgoraIO account and created my test project. I have also set up the LeanCloud account correctly.

So the app starts normally and I wish to create a room by tapping the related button in the CreateRoom view. At this point, I always get the error "Invalid token" when joining the channel/room. LeanCloud table entries are created successfully (and new rooms appear in the Main view of the app). App Certificate is enabled on my AgoraIO project. So that I believe I need to set the Token in BuildConfig along with my AppId.

image

My first question is : Based on my AgoraIO project, which one should I use in the OnlineKTV project when I join the channel ? BuildConfig.Token or BuildConfig.RtmToken ?

In the previous screenshot, in addition to the AppID, there are :
Token : under "Status", which is a static one : I imagine this token is the RTM token, can you confirm ?
RTC token : which is a valid for 24h, and generated and linked to a specific channel name/id.

My second question is : Can you confirm that I don't need this RTC token ?
As we can create many channels with different name/id in the application, I believe that I don't have to use it.

Finally, I updated the call to joinChannel() in RtcServer to use BuildConfig.Token (nil in source code), updated with the "general" Token (not the RTC token). Is it correct then ?

image

Actually I tried each scenario using one or the other, an I always face the error "Invalid Token" error. Can you help me to understand how these tokens are used ?
I don't know what to try now, I wish to get some help in order to evaluate this AgoraIO product.

Thank you!

[Android] Failed to join the room

AVD 和物理机上都遇到同样的问题,可以创建房间,但无法进入。
用 Log 可以看到如下错误的详情,看起来是 LeanCloud 那边的问题?
cn.leancloud.LCException: Class or object doesn't exists.

404,101可能什么原因引起

测试demo 过程中 无法进入房间
https://ebmtnrug.lc-cn-n1-shared.com/1.1/classes/MEMBER_KTV?where=%7B%22userId%22%3A%2262baceea5ee85713b0a4e601%22%2C%22roomId%22%3A%2262bacc775ee85713b0a4e1b8%22%7D
D/LoggingInterceptor: Response: 404
server: openresty
date: Tue, 28 Jun 2022 09:50:39 GMT
content-type: application/json;charset=utf-8
vary: Accept-Encoding
x-request-biztype: unknown
cache-control: no-cache,no-store
pragma: no-cache

{"code":101,"error":"Class or object doesn't exists."}

101

"LCError(code: 101, reason: "Class or object doesn't exists.")"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.