AVPlayer + FairPlay + Offline, possible on MacOS X? - macos

I have watched the WWDC session "Whats New in HTTP Live Streaming" https://developer.apple.com/videos/play/wwdc2016/504/ where it is described how to use AVPlayer for offline FairPlay playback.
A look at the documentation however seems to imply this is only possible for iOS (not MacOS) as all the classes described are iOS10 Only.
Is this not possible for MacOS? Any sources to confirm either way?
Thanks.

Eventually this question was posted on Apple Developer Forums and the response is that
Offline HLS is only supported on iOS at this time. Please do file an
enhancement request at bugreporter.apple.com if you have use cases for
macOS as well, including some details of the use case.
The thread is here : https://forums.developer.apple.com/thread/5529

Related

Xamarin and play videos with FairPlay or other DRM

I'm trying to stream a content from Azure Media Services, but I can't get it to work, so I'm wondering if it's doable, and if so, how do I achieve it? The content is protected by FairPlay. Similar issues on Android and Windows.
I tried to use Xamarin Media Player but it doesn't work with FairPlay because it requires an ExoPlayer2 implementation which is not yet in the plugin.
I don't think that is possible with the current version of the Xamarin Media Manager. Let me also correct the mistaken assumption about ExoPlayer2. ExoPlayer is a strictly Android only playback component, and so has nothing to do with FairPlay at all, as FairPlay is Apple only technology.
For FairPlay to work, you have to listen to events that are specific for FairPlay to handle the license exchange. Those do not seem to be implemented in Xamarin Media Manager as far as i can see. So you would have to do those platform specific implementations yourself. Information about these can be found on the Apple Developer site.
For Android, you would likely want to go with Widevine, which is implemented in ExoPlayer. I can't find any documentation for Xamarin Media Manager on how to set that up either though.

Is there an official Apple API for streaming from a Mac app to Apple TV?

I have been searching high and low, but have so far been ineffable. I am now turning for the stackoverflow community for advice.
My goal is to build a Mac app in XCode, that will allow me to send MP4 content from my Mac (or from a public URL on the web) to my Apple TV.
I have located numerous classes within the framework for iOS that enables this (quite easily it seems), but the trail ends there. It just seems like there is no API to do the same from OSX, but I am hoping that I have overlooked something :-) There seems to be well established methods for sending audio to AirPlay enabled devices, but not video?
I am aware of the 3rd party specification of the protocol at http://nto.github.io/AirPlay.html, and it looks a tangible plan B for my needs, but I would appreciate any pointers if anyone knows of a more official way.

A proper way of handling audio I/O devices attache and detach on Mac

I have been looking for something similar for
AVCaptureDeviceWasConnectedNotification or AVCaptureDeviceWasDisconnectedNotification
but for audio playback and record device. I have done a quick google search, but I haven't found any quite relevant answer for this question. There is a sample code from Apple AVCaptureToAudioUnitOSX. but it does not handle multiple audio route.
I wonder if anyone has idea about it?
You can do this at IOKit level by adding IOKit matching notifications for audio devices being hot-plugged or unplugged. [Caveat - I've not done this in about a decade: higher level APIs might exist]
Apple's documentation for this is here - particularly the section
Getting Notifications of Device Arrival and Departure
This is quite hard work. I advise you to get the IORegistryExplorer tool - which I believe is now in the Hardware IO Tools for Xcode download package (Xcode->Open Developer Tool->More Developer Tools). You can use this to work out the matching criteria.

Is there a new Midi API for Windows Vista/7/8?

I know the midiXxx API, but I saw it is currently listed under 'legacy' in msdn.
http://msdn.microsoft.com/en-us/library/windows/desktop/dd743619(v=vs.85).aspx
Is there some other API i should use to target the newer Windows versions?
Will the old API still work on Windows 7 and 8?
Thanx,
Marc
Last Friday Microsoft released a preview Windows Runtime API for MIDI. Check out the //build/ session here:
http://channel9.msdn.com/Events/Build/2014/3-548
MSDN: http://msdn.microsoft.com/en-us/library/windows/apps/dn643522.aspx
Although a preview, apps can go live and be deployed to the Windows Store. Please let us know what you like or don't like. Happy app building!
For dektop applications (non metro) you can still use the legacy API safely.
Sadly for WinRT/Metro, there is no midi support at all (see this discussion on msdn).
Hope they will change that.
Catflier is correct that there is no direct support (at the API level) for MIDI in WinRT. However, if you are wanting to have MIDI-like capabilities in your app, there are workarounds. A protocol growing in popularity is the network-based OSC (Open Sound Control). Since it is network-based, you can use that.
For example, one can use external hardware like The Missing Link which translates from MIDI to OSC. You hook up your MIDI device to The Missing Link, which then translates to OSC messages that are sent to the computer. Your app can then receive OSC messages and talk to the MIDI device. I don't have any code to show here, but I've seen demos of this working in-action.
You can see OSC in use on iOS as well with popular apps like TouchOSC.

Stream audio on Mac

I have been using AVAudioPlayer on the iPhone and iPad. I can't find anything that comes close on the Mac. Does anyone know where to find a library like that ?
What I want is a library that can stream songs from the internet so the user does not need to download the whole song.
NSSound can play songs from the internet but it does not stream, it just downloads the song and starts to play.
I know ffmpeg works on the Mac and supports streaming. As an added bonus, it works on Linux and Windows too.
Matt Gallagher has a series of articles on his website regarding this, streaming audio on the iPhone and on the Mac as well. He has this project posted on github as well.
It's pretty popular and I've personally used it on an iPhone project and it worked well. It comes with an included Mac sample project which also works well.

Resources