Twilio Remote view (TVIVideoView) is blank on the reciever side - ios

I have integrated twilio programmable video in my sample app.
I have 2 apps and both joins the same room.
On the publishing side it works just fine. I am using AR camera instead of a normal one. I am able to view the preview of the other person and audio also works fine.
But on the receiver side, the remote view seems to be blank. It doesn't load the other person's back camera view itself. The same code was working before and it suddenly stopped working.
Please find the swift file that has the receiver code in the below url,
https://www.dropbox.com/s/j0uxt3cv5iqznc0/ARHelpViewController.swift?dl=0

Twilio developer evangelist here.
When you subscribe to a TVIRemoteVideoTrack, you also must wait for the subscribedToVideoTrack:publication:forParticipant: callback to confirm that you are truly subscribed to the video track and that the data will then be forthcoming.
You can also query hasVideoData to determine whether frames have been received for that view already.
I also believe that a known limitation in the current implementation of TVIVideoView is that if you reuse a view by adding it as a renderer to a different TVIVideoTrack, the 1hasVideoData property will not be reset and no videoViewDidReceiveData: will be sent. The work around for that is to make a new TVIVideoView for any TVIVideoTracks that you wish to render.
I'd also maybe recommend checking out this blog post on ARKit with Twilio Video or this blog post on ARKit with Twilio Video and the Data Tracks API.

Related

How to know when a user complete viewing a video with youtube api?

I currently working on a project where I send a youtube video id and show it to the user. And I want to know if there are a method to know when the video is completely viewed by the user. In my application's client, I send a response to the server when the view is completed, and I want to prevent receiving falsed data from untrusted user. And that's why I want to know if youtube api make a things like that. I have seen other similar topics, but I haven't found a safe way to secure communication between client and server for this problem.
Thank you.
From this SO post, it was mentioned that you can use onStateChange event to log that a user viewed a video. But the general idea here is about safety which I think is more important, from there I don't think you can do this as per the privacy of a user. You can understand more about YouTube Reporting and Analytics here.

How to implement webRTC for iOS mobile app creating 1 to 1 Call (Video and Audio)?

I am developing an iOS Video application with webRTC, I have developed application for room video call as i got a demo named AppRTC.
But the problem is, we can connect if and only if we know the room name.
Any help and suggestion for creating 1-1 Video with webRTC.
Actually, i am not getting the proper way to create Signaling between two users.
I want to develop video call like Whatsapp,facebook and Hangout one to one video call.
I have followed this AppRTC Demo Code On GitHub demo code.
You can implement a WhatsApp-style video call between two users using the "room" approach behind the scenes.
Let's say that User 1 wants to call User 2.
The app running on User 1's device generates a random room name and joins that room.
User 1's app also communicates the room name to User 2's device.
The app on User 2's device shows an incoming call alert.
If User 2 taps the Answer button, the app joins the room and the call with User 1 starts.
The actual room name used for the call doesn't need to be shown to any of the users.
If you want to create 1 to 1 video call you should build your own signaling mechanism.
What I mean by signaling mechanism is basically sending SDPs to each other.
You can find some useful info here

Draw annotation on Twilio Video Chat

I want to use twilio for Remote assistance.
Where user can share camera feed and Technician can assist by drawing annotations on the screen.
similar to the demo video on https://www.twilio.com/video
I was able to get the Video Chat running on my iOS devices.
Can you please guide me how to make annotations on one device which will be shown on the other device.
Twilio Video does not provide support for annotating videos as part of the SDK. There is also no current support for using the WebRTC data channel to send that across. You need to provide your own websocket solution for this I'm afraid.
Edit
Twilio Video does support the data channel now, under the Data Tracks API. You can see the documentation here: https://www.twilio.com/docs/video/javascript-v1-using-the-datatrack-api.
You might also consider using Twilio Sync for something like this too.

Issues with Soundcloud iframe and YouTube iframe together

The Soundcloud widget works fine playing multiple tracks in succession. If I then hide that frame, play a youtube video in a youtube iframe, and then switch back to a new track in the Soundcloud widget, it loads but will not play (ignoring the autoplay setting and any widget.play() calls). I had this working on Chromecast with the developer preview SDK and the 1.0 cast receiver but now with the 2.0.0 receiver it's broken. Any ideas how to proceed?
Currently there is no supported mechanism in the SDK to play YouTube videos outside of the YouTube app. Note that in general, applications may not allow other senders launch or control their receiver side, for example Hulu+ may not like it if you wan to write your own app to launch and control that application on your Chromecast; if they decide to allow such model, they need to publish the steps (for example, they can publish their App ID and additional custom data that would link deep into their application). YouTube is no different in that respect.
ok, got this working so hopefully this is useful to others. Assuming only one is active and visible at a time, the trick is to destroy the prior widgets rather than try to reuse them. For YouTube this does not mean reloading the iframe_api but simply calling YTPlayer.destroy() and new YT.Player() next time around. For SoundCloud keep a handle of the iframe and then call iframe.parentNode.removeChild(iframe) to destroy and then create again next time.

youtube "Unable to post message to..." causing video analytics to not be tracked

We currently have a youtube video embedded on our homepage. Upon clicking play in the console we see the following message:
Unable to post message to http://www.youtube.com. Recipient has origin http://www.stitchlabs.com.
In the previous youtube google group it said that this error was harmless, and it appears it is in regards to playback, but we are noticing other issues with this. What I am noticing is that playbacks are not being recorded in the video analytics within our youtube account. This is specific to the video playback on our homepage and tourpages (www.stitchlabs.com). Playback from our video page or any of other channel partners embedded video pages is being logged. Any idea if these are related and if not what may be causing this?
thank you.
The “Unable to post message to…” warning is not effecting your analytics. This warning comes up when a call to postMessage is sent to a window that hasn't finished loading yet. The player is trying to postMessage early to make sure the api is ready as soon as possible rather than waiting until the onLoad event which might fire well after the api is ready to use.
For the analytics portion, there are many things that could effect if a view is counted. For example autoplay and scripted playbacks don't count towards your view count. Here's a thread with details.
https://groups.google.com/forum/?fromgroups=#!topic/youtube-api-gdata/ZZWcKmfFUvM
I do not know if the two problems are related, but you can try to fix the first with this solution:
Using YouTube's PlayerAPI inside of a Google Chrome Extension under Manifest V2 -- works, but generating lots of warnings
Unable to post message to http://www.youtube.com is resolved by
wrapping the YTPlayer instantiation code with a $(window).load()
instead of a $(document).ready.
and see if that solves the second problem

Resources