I'm starting to migrate my GoogleCast integration from v2 to v3.5 on iOS when I run your code lab sample I always receive the current errors:
CastVideos-ios[436:35929] -[GCKDeviceAuthChannel didReceiveBinaryMessage:] Device is revoked by CRL.
CastVideos-ios[436:35929] -[GCKCastDeviceConnector deviceAuthChannel:didFailToAuthenticateWithError:] Not an authentic device, disconnecting.
Obviously the videos are not casting to my Chromecast 2.
I'm using the kGCKMediaDefaultReceiverApplicationID to initialize the GCKCastContext
We recommend that you take a look at the sample app on how to correctly integrate the Cast SDK with your app: https://github.com/googlecast/CastVideos-ios
It is very important that you support the Cast lifecycle correctly.
Related
I am working on a project that uses the Azure Media Services Python SDK (v3). I have the following code which creates a live output and a streaming locator once the associated live event is running:
# Step 2: create a live output (used to reference the manifest file)
live_outputs = self.__media_services.live_outputs
config_data_live_output = LiveOutput(asset_name=live_output_name, archive_window_length=timedelta(minutes=30))
output = live_outputs.create(StreamHandlerAzureMS.RESOUCE_GROUP_NAME, StreamHandlerAzureMS.ACCOUNT_NAME, live_event_name, live_output_name, config_data_live_output)
# Step 3: get a streaming locator (the ID of the locator is used in the URL)
locators = self.__media_services.streaming_locators
config_data_streaming_locator = StreamingLocator(asset_name=locator_name)
locator = locators.create(StreamHandlerAzureMS.RESOUCE_GROUP_NAME, StreamHandlerAzureMS.ACCOUNT_NAME, locator_name, config_data_streaming_locator)
self.__media_services is an object of type AzureMediaServices. When I run the code above, I receive the following exception:
azure.mgmt.media.models._models_py3.ApiErrorException: (ResourceNotFound) Live Output asset was not found.
Question: Why is Azure Media Services throwing this error with an operation that creates a resource? How can I resolve this issue?
Note that I have managed to authenticate the SDK to Azure Media Services using a service principal and that I can successfully push video to the live event using ffmpeg.
I suggest that you take a quick look at the flow of a live event in this tutorial, which unfortunately is in .NET. We are still working on updating Python samples.
https://learn.microsoft.com/en-us/azure/media-services/latest/stream-live-tutorial-with-api
But it should help with the issue. The first issue I see is that it's likely you did not create the Asset for the Live output to record into.
You can think of Live Outputs as "tape recorder" machines, and the Assets at the tapes. They are locations in your storage account that the tape recorder is going to write to.
So after you have the Live Event running, you can have up to 3 of these "tape recorders" operating and writing to 3 different "tapes" (Assets) in storage.
Create an empty Asset
Create a live output and point it to that Asset
get the streaming locator for that Asset - so you can watch the tape. Notice that you are creating the streaming locator on the asset you created in step 1. Think of it as "I want to watch this tape" and not "I want to watch this tape recorder".
I am using unity 2019.3 and installed latest azure speech SDKas far as I know. I also subscribed to pay as you go plan. Here is the error generated in unity:
CANCELED:
Reason=[Error]
ErrorDetails=[Connection was closed by the remote host. Error code: 1011. Error details: Internal server error. USP state: 3. Received audio size: 0bytes.]
Did you update the subscription info?
I'm calling this code from Windows IoT Core on RPi3 and getting this error. I'm trying to send a message to a blob in Azure. However, it only does it once and silently fails.
The Code:
s_deviceClient = DeviceClient.Create(s_iotHubUri, new
DeviceAuthenticationWithRegistrySymmetricKey(s_myDeviceId, s_deviceKey),
TransportType.Mqtt);
await s_deviceClient.SendEventAsync(message);
The Error:
microsoft azure devices client "I/O Error Occurred".
I was told that a using SetPolicy/ExponentialBackoff might work but I haven't been successful in implementing it. I'm calling it from a static class if that means anything.
I found a solution with a dynamic class, but I'd have to change the architecture of my app to use it.
https://azureiot.wordpress.com/2018/05/03/azure-iot-hub-device-sdk-retry-policy/
I'm referring this tutorial to create a device identity. However, getting an exception as below:
Here is my config file:
Edit:
What is this Instrumentation key and value in App.Config? I just copied from the sample code. However, from where can I get it, in case I'm using a real device?
Am I missing any SDK or anything else?
Do I need to download something extra? the tutorial does not suggest anything.
Even when I'm running sample code from GiTHub getting the same error.
the following screen snippet shows a reason of this error, such as connectionString.
Use the connectionString from your Azure IoT Hub - see the tutorial section Create an IoT Hub step 6.
Can you check that the connection string you're using is in the correct format. It should look like:
"HostName={your hub name}.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey={your key}"
You can copy the complete connection string from the portal as described in the tutorial.
Issue resolve: I was missing my connection string.Which I got from "IoTHubOwner" from Azure portal login. :)
I am trying to implement Android app for playing widevine-protected video. I build my application on Exoplayer and I have issue with MediaDrm.
android.media.MediaDrm$MediaDrmStateException: Failed to get key request: DRM vendor-defined error: -2998
at android.media.MediaDrm.getKeyRequest(Native Method)
at com.google.android.exoplayer.drm.StreamingDrmSessionManager.postKeyRequest(StreamingDrmSessionManager.java:370)
at com.google.android.exoplayer.drm.StreamingDrmSessionManager.openInternal(StreamingDrmSessionManager.java:314)
at com.google.android.exoplayer.drm.StreamingDrmSessionManager.open(StreamingDrmSessionManager.java:284)
at com.google.android.exoplayer.MediaCodecTrackRenderer.maybeInitCodec(MediaCodecTrackRenderer.java:325)
at com.google.android.exoplayer.MediaCodecTrackRenderer.onInputFormatChanged(MediaCodecTrackRenderer.java:739)
at com.google.android.exoplayer.MediaCodecTrackRenderer.readFormat(MediaCodecTrackRenderer.java:511)
at com.google.android.exoplayer.MediaCodecTrackRenderer.doSomeWork(MediaCodecTrackRenderer.java:492)
at com.google.android.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:417)
at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:205)
I have this exception. I found that this exception is thrown at this line of code:
keyRequest = mediaDrm.getKeyRequest(sessionId, schemeData, mimeType, MediaDrm.KEY_TYPE_STREAMING, params);
All parameters of method are set correctly, but calling of this method fails and thrown exception above.
Do you know how can I solve it? Thanks for any help.
I finally solved it. The problem was with device, which I was using for testing. This device is Samsung Galaxy S4 with Android 5.0.1. When I tried my code on different device (Nexus 5, some Samsung tablet, etc.), it worked fine. So probably there is some bug or missing support of Widevine Modular in Galaxy S4.