Cloudkibo / CloudKibo

CloudKibo
0 stars 0 forks source link

Fix interop issues between IE, chrome and firefox #374

Open sojharo opened 8 years ago

sojharo commented 8 years ago

During the testing of our application between IE, chrome and firefox, we found that there were some APIs which were supported in one browser but not in other i.e. Web Audio API.

There are still some bugs like this that we need to figure out and solve. I found one today in IE that IE doesn't support Object URL which we use in conference.

These APIs are separate than webrtc APIs. We can use plugins for WebRTC support in all browsers. But we need to see how to overcome such interop issues which occur because of non-webrtc apis.

part of #363

jekram commented 8 years ago

@sojharo

Are there the equivalent of API in IE that is missing in IE. Like Object URL

How do handle these incompatibilities?

sojharo commented 8 years ago

I found couple of workarounds shared by people. But it did not work in our case as angularjs attaches the URL Object differently. However, I found one error during testing on this. I have opened as #383

sojharo commented 8 years ago

I have spent a lot of time on this but still the error is happening on Internet Explorer. It is because of way angularjs attaches the stream URL to audio / video element.

The next thing in this is to try making a simple web page which is not using angularjs and is doing webrtc call. I hope it would work on IE with plugin if there is no angularjs.

jekram commented 8 years ago

I do not understand the comment about how angualr attaches the stream URL?

We have no control in our javascript? It looks backword

sojharo commented 8 years ago

Angularjs doesn't allow us to directly work with DOM elements. It doesn't allow us to get access to any HTML element by Id and then add or remove DOM from it. Therefore, in order to attach the stream to any video element we just make the URL of the stream and pass the URL to that video element with help of Angularjs directive.

The making of URL in this way is not supported in Internet Explorer. Also, the plugin wants us to give stream and video element to their function and plugin will itself attach stream to video element (DOM).

Conference is dynamic and we can have as many video elements on page as we want. They are created or removed at runtime (i.e. person joins or leaves) therefore, we can't attach any HTML id to these elements. Angularjs dynamically generates and removes them.

I would see if I am able to do this on DOM level by writing it in directive itself.

jekram commented 8 years ago

@sojharo

Let's discuss this

sojharo commented 8 years ago

Yes, I have also written to TemaSys team on how can we integrate their plugin with AngularJS plugin. I have asked them to direct me towards some guide or tutorial where they give sample of angularjs application using their plugin.