Is making a video calling and live broadcast app possible in Swift? - ios

I am new to Swift and I want to integrate video calling in my app using Swift. I want to make a live broadcasting video app where one host will come live and other clients can join him/her.
I tried several third party apps like agora.io but it didn't work for me. Do you guys have a better suggestions?

Try quickblox. It is a very smart solution, it can manage everything for you, your only task is to present the UI and the buttons. It is relatively cheap, even free for low user count. We have used it to create an "intercom" like application
Quickblox website

Related

Video Streaming and Broadcasting using WebRTC

I am very new to Real Time Protocols and I had some questions about how WebRTC works and how I can implement it. I am trying to create a one to many livestream like facebook or periscope, where one user broadcasts and other users join and stream the video. I am using Swift from my client end.
My questions are:
How do I broadcast a video using WebRTC
Is there an SDK for WebRTC in Swift/iOS
I know the questions are very vague but a guidance to the right direction would be great because I am not sure where to start
You will need to use backend servers for that.
If you plan on broadcasting to multiple users directly from your mobile app then stop...
You need to connect your mobile app to a backend media server which then can be used to broadcast the video to a larger audience.
There are several commercial and open source alternatives that enable you to do that. I'd check Red5Pro, Wowza, SwitchRTC, Jitsi, Janus and Kurento for this task.
For the client side, look at react-native-webrtc
You can find more tools for WebRTC developers here.
Regarding your question (2), there's also a SDK for iOS here and a neat get-started-page here (although 2.5ys old, but I haven't found anything better so far yet)

Connecting 2 IOS Apps Through a Video Call

I've been developing an app and it seems I've ran into a brick wall. I'm trying to create a video connection between two apps (similar to how the uber driver app connects with the uber rider app-etc.) Basically I need to be able to allow one app to create a 1:1 video call to another app. Just a nod in the right direction would be greatly appreciated!
I think the most common and reliable approach for this is to use some WebRTC based solution. There are several SDK that provide such an experience. I've used Sinch, Twilio and Icelink
Some of them requires you to purchase a license.

TokBox (OpenTok) Let users call each other using

Using any of the OpenTok client SDKs, is it possible to call from one client to an other client, and make it look like similar to a "real" phone call?
I understand that a user X and user Y can join the same "room" if they both know the name of the room. But I don't understand how user X can send signals, to notify user Y to join a specific room, how is this done? I want it to work cross platform, i.e, work on iOS, Android devices, and web pages. My use cases are:
- app to browser
- browser to app
- app to app
- browser to browser
Is it possible in all of my use cases? Which are possible?
Is it possible to use OpenTok in a mobile app to show an incoming call even though the app is in the background (like how facebook messager and whats app works)
I've gone trough the tutorials on Tokbox website and successfully got them working, but I can't find a way to let different users notify each other to join a session (neither in a peer-to-peer way, or via a server). How should this be done?
I cannot find that this functionality is provided by another player such a Twilio either.
Thanks in advance,
Let's OpenTok do its job. In other words, use OpenTok to actually start a video session. All these things that you talked can be handled WITHOUT OpenTok, like REST APIs or Websocket or whatever.
I used to work in a similar project. Have a server to coordinate everything (all clients connected, who call who, push notifications, etc).
Whenever A needs to call B, the SERVER will start a "room" and put A and B to talk to each other...
So, don't mix the things. Let your server orchestrate everything and use OpenTok for video. It's designed for this purpose.

iOS : is it really impossible to get info of current track being played in third-party apps (like Spotify)?

So far, I have red many conflicting answers about this.
In this SO thread, it is said to use:
let player = MPMusicPlayerController.systemMusicPlayer()
if let mediaItem = player.nowPlayingItem {
// ...
}
However, this only works with the iOS player. If the current song is being played by Spotify for example, mediaItem will be nil.
I understand that Apple's policy doesn't allow to access any other application's data. The only thing I am able to do right now is to know if a song is playing from another player with the help of AVAudioPlayer's secondaryAudioShouldBeSilencedHint and isOtherAudioPlaying.
I want to know, however, if there is another way to access it, like using Spotify framework? (I am absolutely non familiar with it, that's just making assumptions).
Thanks for your help.
I am not sure about iOS but the current track can be read from Spotify on a Mac via AppleScript. I use this technique from Objective C. If you're interested I can post the code.
Spotify publish their API for AppleScript here https://developer.spotify.com/applescript-api/
If you're looking for a generic way of determining what is playing then I think that you will be disappointed. Each application will have a different way of retrieving this information.
So yes and no. If you want to specifically only check if Spotify is playing, then perhaps the Spotify iOS SDK provides functionality for such a thing. I really don't know about that SDK's functionality.
I would venture to guess that your actual goal is to see if any third party framework is playing; Pandora, Tidal, Apple Music, Amazon Prime Music, etc. In which case, you would need a framework for each one that provided such functionality.
Apps are sandboxed from each other for security, so yes, there is no way to tell the current track information other than if you have the framework in place and it provides that functionality.

iOS - Google Analytics for one page

I have created a game for iOS and I want to be able to track when people are playing.
By this, I simply mean I want to know how often people are opening the app (and thus find out if users are returning or playing it only once).
Because of this, I don't want to have to include the entire Google Analysics SDK in my project. Does anyone know if it's possible to make a request from in an iOS app (possibly using NSURLRequest?) to call Google Analytics and make it think a web page has been visited?
Thanks in advance.

Resources