Skicka ASF-data till en publiceringsplats
[Funktionen som är associerad med den här sidan, Windows Media Format 11 SDK, är en äldre funktion. Det har ersatts av Source Reader och Sink Writer. Source Reader och Sink Writer har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder Source Reader och Sink Writer i stället för Windows Media Format 11 SDK, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]
Du kan använda Windows Media Format SDK för att skicka ASF-data till en publiceringsplats på en Windows Media-server. Servern sänder sedan data från den publiceringsplatsen. Det här scenariot är användbart om du samlar in eller kodar om innehåll på en dator och vill distribuera innehållet från en annan dator (eller flera datorer). Det är också användbart om du behöver flytta innehåll från en dator i en brandvägg till en Windows Media-server utanför brandväggen, eftersom push-distribution använder HTTP-protokollet.
Anteckning
En publiceringsplats fungerar i stort sett som en omdirigerare. Klienten anger publiceringsplatsen i URL:en (till exempel mms://MyServer/MyPublishingPoint) och servern översätter detta till en begäran om innehåll.
Om du vill skicka data till publiceringsplatsen kopplar du push-mottagarobjektet till skrivarobjektet. Push-mottagaren används för att öppna anslutningen till servern och hantera push-sessionen. Skrivobjektet hanterar alla andra aspekter av att skapa filen.
Utför följande steg:
- Skapa skrivarobjektet genom att anropa funktionen WMCreateWriter, som returnerar en IWMWriter- pekare.
- Skapa push-mottagarobjektet genom att anropa funktionen WMCreateWriterPushSink, som returnerar en IWMWriterPushSink- pekare.
- Koppla nätverksmottagaren till skrivaren genom att anropa IWMWriterAdvanced::AddSink på skrivaren, med en pekare till nätverksmottagarens IWMWriterPushSink gränssnitt.
- Anslut till servern genom att anropa IWMWriterPushSink::Connect.
- Skriv strömmen. Det här steget omfattar att ange profilen på skrivarobjektet, skicka exempel till skrivaren och eventuellt andra uppgifter. Mer information finns i Skriva ASF-filer. Ytterligare uppgifter kan vara att ange metadataattribut (enligt beskrivningen i Arbeta med metadata) eller ställa in live-DRM på strömmen (enligt beskrivningen i Aktivera DRM-support). Dessa uppgifter utförs precis som för ASF-filskrivning.
- När du har skrivit klart anropar du IWMWriterAdvanced::RemoveSink på vritaren för att koppla från push-sink-objektet.
- Anropa IWMWriterPushSink::EndSession på push-mottagaren för att avsluta sessionen med servern.
De här stegen visas i exempelprogrammet WMVNetWrite.
Anteckning
Om du skickar en videofil med mycket låg bithastighet kanske den inte börjar spelas upp på publiceringsplatsen på flera sekunder. Detta kan inträffa i olika fall, till exempel när ett enda paket innehåller många små videorutor och inget ljud, eller när det finns ett långt tidsgap mellan det första paketet och det andra paketet i en fil med endast låg bithastighet för video. Undvik det här problemet genom att infoga en tyst ljudström i filen.
Autentisering
Autentisering till servern hanteras automatiskt av push-mottagarobjektet. Programmet kan dock behöva ange autentiseringsuppgifter. Detta görs via gränssnittet IWMCredentialCallback callback enligt följande:
- Implementera gränssnittet IWMStatusCallback och IWMCredentialCallback i ditt program.
- Fråga push-mottagarobjektet efter gränssnittet IWMRegisterCallback.
- Anropa IWMRegisterCallback::Råda med en pekare till programmets IWMStatusCallback--gränssnitt.
- Om push-mottagaren behöver hämta autentiseringsuppgifter från programmet, förfrågar den IWMStatusCallback pekaren efter gränssnittet IWMCredentialCallback och anropar IWMCredentialCallback::AcquireCredentials. Information om den här metoden finns i Authentication.
- När du är klar anropar du IWMRegisterCallback::Unadvise för att sluta hämta händelsemeddelanden från push-mottagaren.
Relaterade ämnen