Hi,
I wrote a post about how to get this sample working with smooth streaming, but the playback is not working inside virtual machines and older videocards with proper win8 on them.
Is it possible to fix this somehow?
The details are here:
http://gdwp7dev.wordpress.com/2012/09/09/playready-protected-smooth-streaming-playback-on-windows-8/
DRM protection ensures that the entire output chain including the physical playback device (e.g. monitor) is secure. If the output device is unknown to DRM, secure playback cannot be guaranteed and will not be allowed. This explains the behavior you are seeing with virtual machines and older monitors. Try another monitor.
Now that Silicon Dust has released the beta of their DLNA tuner support that supports DTCP for encrypted channels, is it possible to use Playready to stream these on a Windows 8 machine?
Hi,
Due to some reasons, I must add PlayReady encryption on clear smooth streaming content using IIS/Transform Manager. However, the PlayReady content cannot be playback (but the duration of the video is shown) on Win 8 style app while the same content can be playback on Win 7 Silverlight player. Someone suggested that I should toggle the value of the "UseSencBox" flag in IIS/Transform Manager setting. Unfortunately, no matter what values (true/false) I set, none of them can be playback. How to fix this problem?
Hi KodeMonkey,
You may try to use C:\Program Files\IIS\Transform Manager\SmoothProtect.exe
You can read the command detail without passing any argument.
The sample for this SDK doesn't cover progressive download.
Can anyone give me an example of how progressive download is handled?
I want to be able to stream an audio file and save it to the disk at the same time.
Thank you!
Hi,
we'd like to increase tests on protected smooth streams (for example, test on individualization). To do it, we'd like to know if it's possible to clean drm store? (like mspr.hds for Silverlight).
Thanks,
Nicolas
I'm using the "Player Framework Preview 5 Refresh" in a Metro app on a Windows 8 RTM machine, together with the "PlayReady client SDK for Metro Style Apps (2.3.1662.0)" and "Smooth Streaming Client SDK Beta 2 (1.0.806.12)" to play a DRM-protected live SmoothStreaming stream.
When the video starts to play after individualization and license acquisition, an exception is thrown by the player in the OnNaturalDurationchanged eventhandler. Apparently, a value is added to a System.TimeSpan object which causes an System.OverFlowException to be thrown.
Message: "TimeSpan overflowed because the duration is too long."
at System.TimeSpan.Add(TimeSpan ts)
at Microsoft.PlayerFramework.MediaPlayer.OnNaturalDurationChanged(Duration newValue)
at Microsoft.PlayerFramework.MediaPlayer.<.cctor>b__d7(MediaPlayer t, Duration o, Duration n)
at Microsoft.PlayerFramework.MediaPlayer.<>c__DisplayClass3d`1.<RegisterDependencyProperty>b__3c(MediaPlayer t, T o, T n)
at Microsoft.PlayerFramework.MediaPlayer.<>c__DisplayClass34`2.<RegisterDependencyProperty>b__33(DependencyObject d, DependencyPropertyChangedEventArgs e)
at Windows.UI.Xaml.DependencyObject.SetValue(DependencyProperty dp, Object value)
at Microsoft.PlayerFramework.MediaPlayer.OnMediaOpened()
at Microsoft.PlayerFramework.MediaPlayer.<OnMediaOpened>d__29.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(Object state)
at System.Threading.WinRTSynchronizationContext.Invoker.InvokeCore()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext ...
I get a Validation Error when I try to load my app into the Store:
Validation error: Your app can declare dependencies only on versions of Windows component libraries that are available from the Windows Store. Check your app's dependencies and make sure that the MinVersion of each is less than or equal to a version that is available from the Windows Store.
If I remove the reference to the PlayReady Client SDK the upload is successful.
The AppStore has switched over to a RTM version of the PlayReady Client and can’t accept apps built on prior versions. At this point in time the RTM version is not freely available.
I was trying to adopt this PlayReady Client SDK in a Metro App (Javascript) but cannot get it work.
Every time I jump to this statement error occurs.
var req = new Microsoft.Media.PlayReadyClient.PlayReadyLicenseAcquisitionServiceRequest();
An unhandled exception is thrown: 0x8004b822 - JavaScript runtime error: Unknown runtime error
Please advise or include some workable examples for people to follow.
Thanks for your reply.
I think the main question is, I cannot figure out the procedure of handling DRM license request and I can hardly find resources about adopting PlayReady DRM on Windows 8 platform.
Could you please advise more on whether the implementation should be like this:
var indiv = new Microsoft.Media.PlayReadyClient.PlayReadyIndividualizationServiceRequest();
indiv.challengeCustomData = custom_data; // or set in PlayReadyLicenseAcquisitionServiceRequest?
//indiv.uri = ".../rightsmanager.asmx"; // need to define target Licensing server?
indiv.beginServiceRequest(); // should set callback?
var req = new Microsoft.Media.PlayReadyClient.PlayReadyLicenseAcquisitionServiceRequest();
req.challengeCustomData = custom_data; // or set in PlayReadyIndividualizationServiceRequest?
req.beginServiceRequest(); // should set callback?
Or is there any other working sample for our reference?
Maybe let me specify the environment I am using too:
- Windows 8 Release Preview (build 8400)
- Visual Studio Ultimate 2012 RC
- HTML5 Player Framework 1.1
- PlayReady Client SDK for Metro Apps (Version 2.0, updated on 6/30/2012)
- Smooth Streaming Client SDK Beta 1 for Windows 8 Metro Style Apps (Version 1.0.521.12, updated on 6/6/2012)
Thanks again and looking forward to your reply.
The MediaProtectionManager will fire off ServiceRequested events when you attempt to play DRM content. An Individualization request is a once per machine request that when complete will be followed by a LicenseAcquisition request.
You will need to set a callback for the LicenseAcquistion request to handle the result. At that point call the original MediaProtectionServiceCompletion object's Complete method with the return value, which, if positive, will allow playback to begin.
These will help:
PlayReadyLicenseAcquisitionServiceRequest.GenerateManualEnablingChallenge();
PlayReadyLicenseAcquisitionServiceRequest.ProcessManualEnablingResponse(data);
MediaProtectionServiceCompletion.Complete(bool);