Shaka player social share - html5-video

I'm using shaka player as my html5 DASH player, and i want to allow social network integrations.
For instance, share a clip to whatsapp/facebook or as a link for forums/websites.
Is it possible using Shaka player? (I can easily switch to working with DashJS if that is more flexible)

Sharing the link is pretty much independent from the player itself.
You will have the URL for the video stream already as this is what you will be giving to the player, so you really just need to use the standard social network API's to share this link.
Some players will have this functionality included as an overlay or control on the video, which may be what you mean - however, you can still share the link your self by just adding your own share button below it on your web page.
I'm not aware of any Shaka Plugin to allow it be included in the controls, but if you wanted to add it yourself all the controls are grouped in:
https://github.com/google/shaka-player/blob/7169c7a5902696a42419b67a9c8e091e7f06c95d/demo/common/controls.js
For example you can see how the mute button is handled when it is clicked here:
/** #private */
ShakaControls.prototype.onMuteClick_ = function() {
if (!this.enabled_) return;
this.video_.muted = !this.video_.muted;
};
You could add a control to call the required social network sharing API for your case.

Related

How to implement customized unfurling (preview snippets) with Branch.io quick links?

We generate quick links in our iOS app that are supposed to point to specific content within the app. When a quick link is shared via a messaging app that supports preview snippets, we want the snippet to display custom content depending on the parameters passed when our iOS app generates a link.
For example, user wants to share an audio, the app generates a link which is then posted in a messaging app or social media. We want the preview snippet to reflect specific title/subtitle and image related to that audio.
We use a custom domain name for Branch links if that matters.
What is the right way to achieve this?
You can use Link Preview for achieving this functionality. It will enable the link to display content as a preview card in Facebook, Twitter, Pinterest, iMessage, etc. This card can contain a title, description and image (that you append in the link as OG Tags such as $og_title, $og_description, and $og_image_url) .

Can I create a Whitelist for Safari using OpenUrl in Xamarin.Forms?

I am working on a project using Xamarin.Forms as a container app. This app includes several webviews that link to restricted web content. One of these links our Sharepoint site. The Sharepoint site has a link that allows our users to go to a 3rd party site(Cornerstone) to view training videos. When using the stock UIWebView, WKWebView, or SFSafariViewController the popup that displays the video is not shown. The only way that I can get this video to play in my app is to use OpenURL to open the Sharepoint site in Safari. The problem is that this is an Enterprise solution where we don't want to allow the employees free reign with the browser.
Is there a way to create a whitelist or to have some control over the searchbar or read the url that they are linking to and block it or redirect the user?
Unfortunately as it's farming out the URL Navigation external to your application there's not a lot you can do from within your app to restrict what they do after the fact, 'openURL' only returns a Boolean value as to it's success, and the only parameters that you can send to it are:
application - Reference to this application
(UIApplication.SharedApplication).
url - The NSUrl specified by the
calling application.
sourceApplication - The bundle ID of the calling
application.
annotation -Optional property-list data passed by the
calling application.
You can only access these if you override the 'openURL' method within your 'AppDelegate.cs' class, there is a set of options you can pass through as an override but again none of those allow you to restrict what the user does after the browser has opened.
If the devices are managed using something like 'meraki' or some other software to control the use of managed devices, then you would likely set up a 'group policy' styled set of restrictions however that's not really a Xamarin issue, and should be discussed with the network administrators.
That being said, I don't see any reason why you can't use the WebView1, that way you can handle it all within your application. Or alternative utilize custom renderers and pass in the direct video urls and commit to opening up the devices media player for streaming the content2.
1 Playing videos in WebView
2 Using the media manager plugin.

how to control an embedded <iframe> (any) video?

I would like to be in full control over Embedded videos, just as like as i can control my owned videos.
By "control" i mean by commands, such as -
iframeId.play();
iframeId.pause();
iframeId.currentTime();
I've seen its possible with YouTube videos, they share they're API.
But is it possible with any flash video i embed?
can i find it's API somehow?
if i cannot, can i work on any other solution (to control embedded vids) in any other way? how?
You should use YouTube IFrame API to control YouTube videos which are Iframe, AS3 or AS2.
Here is the full reference page for it: https://developers.google.com/youtube/iframe_api_reference
Also you can use Javascript API or Flash (Raw) API
Don't forget to use the YouTube player by the rules (I mean, you shouldn't hide the player or sth like that.)
Good Luck ;)

Playing youtube/vevo videos on iOS

I've seen the Google blog article explaining the way to embed youtube videos in an iOS app. I've successfully embed videos in my iOS app. BUT, I've seen the WhoSampled app where they are able to play Vevo/youtube videos. Somehow they are able to play those videos and my app is not able to play them. (In my app, there is a blue play circle with a line through it showing that is not playable.)
How do I allow those videos to be playable?
Do I have to setup the youtube link in a specific way or is there a way I need to setup the developer key?
There is a way to get the actual video stream for a given YouTube video instead of the HTML-embedded one. See this project:
https://github.com/hellozimi/HCYoutubeParser
The problem with this approach is that it will likely violate the EULA of YouTube APIs, especially if you are releasing it in a paid application:
In addition, please remember that attempting to play a YouTube video outside of either the YouTube embedded, custom or chromeless player is strictly prohibited by the API Terms of Service.
(source: https://developers.google.com/youtube/creating_monetizable_applications)
You just have to use the iframe embed as opposed to the Flash one.

Play brightcove videos

I want to play a remote video hosted in Brightcove. As Brightcove URLs are links to players not direct links to video files the AVPlayer won't do it.
I know Brightcove provides an API but can't find any good examples for iOS nor documentation.
Any help/pointing direction appreciated.
I haven't used Brightcove, but poking around their site, I see they have two APIs: a Player API and a Media API. It sounds like the Media API is what you want — it's documented as giving direct references to the videos. The page has a link to several examples.
You can also lift alot of the code from their Oneplanet demo source. In fact the whole playlist and video player mechanism can be practically copied into your project so all you need to do is pass a video or playlist ID into their initwithnibandplaylist function in their view controller and you're good to go.
I hope this helps your question. There is a renditions which contain direct video link.
Here is a link for api link.
http://support.brightcove.com/en/video-cloud/docs/accessing-video-content-media-api
renditions is a javascript object containing multiple video links based on resolutions such as 360,460, 720.
You can find the direct link to the video via the media api, bypassing the player API entirely. You need a pro account and a token:
http://support.brightcove.com/en/docs/getting-started-media-api
Alternatively, you can create a simple "player" without any controls (just a video window actually) and make your own HTML controls totally outside of Brightcove to trigger almost anything you'd want to do via the player API.
There is also a Brightcove iOS SDK. It is really two SDKs one for the Media API and one that includes a MediaPlayer. If you want to use the AVPlayer you can use the Media API iOS SDK. Here is the docs for that:
http://docs.brightcove.com/en/video-cloud/mobile-sdks/brightcove-player-sdk-for-ios