cermo-lit.ru

  

Bästa artiklarna:

  
Main / Jmf grundläggande handledning hur man spelar

Jmf grundläggande handledning hur man spelar

Denna handledning ger en översikt över några av de viktigaste funktionerna i JMF, främst genom användning av exempel på arbete. När du har slutfört denna handledning kommer du att förstå de viktigaste aktörerna inom JMF-arkitekturen. Du kommer också att ha arbetat direkt med JMF, med liveexempel och källkod som kan utökas för mer specifika ändamål.

Nästan alla typer av mediehantering eller -behandling är möjliga via JMF. En omfattande diskussion om alla funktioner som JMF har att erbjuda ligger långt bortom denna handledning. Istället använder vi tre förenklade medieapplikationer för att lära oss mer om ramens byggstenar.

På detta sätt förbereder handledningen dig för framtida studier och implementering av mer specifika applikationer. Denna handledning kommer att gå igenom grunderna i att arbeta med JMF. För att uppnå detta skapar vi tre separata arbetsexempelapplikationer. Var och en av dessa exempel bygger på de tidigare exemplen och visar olika aspekter av JMFs funktionalitet. Exemplen i denna handledning antar att du har använt och redan är bekant med Java-programmeringsspråket.

Viss förtrogenhet med både GUI och nätverksklasser hjälper dig snabbare att förstå diskussionen och exemplen här, men är inte förutsättningar för denna handledning. Som en del av den tredje övningen ändrar vi den GUI-aktiverade mediaspelaren så att den kan ta emot och spela sändningsmedia. Se relaterade ämnen för en lista över artiklar, handledning och andra referenser som hjälper dig att lära dig mer om ämnena som omfattas av den här självstudien.

Den slutliga demoapplikationen visar hur JMF kan användas över ett nätverk. Vid behov kan demo köras på en enda maskin med maskinen som både sändare och mottagare. För att se full effekt av att använda JMF över ett nätverk behöver du dock minst två maskiner som kan nås på samma nätverk.

Se relaterade ämnen för att ladda ner Java 2-plattformen, kompletta källfiler och andra verktyg som är nödvändiga för att slutföra denna handledning. Se relaterade ämnen för en länk för att ladda ner JMF. För att öka prestanda bör du ladda ner den version som är specifik för ditt operativsystem. Om du till exempel laddar ner Solaris-versionen av JMF och sammanställer ett antal klasser, kan samma klasser användas på en Linux-maskin utan problem.

Alternativt kan du välja att ladda ner den rena Java- eller "plattformsversionen" av JMF. Denna version använder inga OS-specifika bibliotek. Plattformsversionen är ett bra val om ditt operativsystem inte har en egen version av JMF installerad eller om du inte vet vilket operativsystem målmaskinen kommer att köra. Om det här alternativet är avstängt, kom ihåg att inkludera JMF jar-filerna i klassvägen när du kompilerar eller kör något av exemplen i den här självstudien.

I det här avsnittet går vi igenom den första övningen av att skapa en enkel ljudspelare. Detta exempel introducerar dig till Manager-klassen och Player-gränssnittet, som är två av de viktigaste delarna av att bygga mest JMF-baserade applikationer.

Det funktionella målet med detta exempel är att spela en lokal ljudfil via ett kommandoradsgränssnitt. Vi går igenom källkoden och granskar vad som händer i varje rad. Se SimpleAudioPlayer. De första raderna i klassen SimpleAudioPlayer inkluderar följande samtal som importerar alla nödvändiga klasser :. Javaxen. Vi fokuserar på chefsklassen och spelargränssnittet i det här avsnittet och hanterar några av de andra javaxerna.

Förutom importjavaxen. I nästa kodfragment definieras den offentliga klassen SimpleAudioPlayer och Player-instansvariabeln :. Termen Player kan låta ganska bekant, eftersom det är baserat på vår vanliga användning av ljud- och videobaserade mediaspelare. I själva verket fungerar instanser av detta gränssnitt ungefär som deras verkliga motsvarigheter. Spelarens exponera metoder som relaterar till funktionerna hos en fysisk mediaspelare som stereoanläggning eller videobandspelare.

Till exempel har en JMF-mediaspelare möjlighet att starta och stoppa en ström av media. Vi kommer att använda start- och stoppfunktionerna för spelaren i hela detta avsnitt.

JMF gör det ganska enkelt att få en spelarinstans för en given mediefil. Manager-klassen fungerar som en fabrik för att skapa många av de specifika gränssnitttyper som exponeras i JMF, inklusive spelargränssnittet. Därför är chefsklassen ansvarig för att skapa vår spelarinstans, som visas nedan :.

Om du följer med källan för det här avsnittet kanske du har märkt att klassen Manager innehåller andra metoder för att skapa spelarinstanser. Vi kommer att utforska några av dessa metoder - som att skicka i fall av en DataSource eller MediaLocator - i ett senare avsnitt.

JMF definierar ett antal olika tillstånd som en spelarinstans kan vara i. Dessa tillstånd är följande :. Eftersom att arbeta med media ofta är ganska resurskrävande är många av metoderna som exponeras av JMF-objekt icke-blockerande och möjliggör asynkron anmälan av tillståndsförändringar genom en serie händelselyssnare.

Till exempel måste en spelare gå igenom både de förinställda och realiserade tillstånden innan den kan startas. Eftersom dessa tillståndsändringar kan ta en stund att slutföra kan ett JMF-medieprogram tilldela en tråd till den första skapandet av en Player-instans och sedan gå vidare till andra åtgärder. När spelaren är klar kommer den att meddela applikationen om dess tillståndsändringar. I en enkel applikation som vår är denna typ av mångsidighet inte så viktig.

Av denna anledning exponerar klassen Manager också verktygsmetoder för att skapa realiserade spelare. Att anropa en createRealizedPlayer-metod gör att samtalstråden blockeras tills spelaren når tillståndet Realiserat.

För att anropa en icke-blockerande spelarskapsmetod använder vi en av createPlayer-metoderna i klassen Manager. Följande kodrad skapar en realiserad spelare som vi behöver i vår exempelapplikation :. Att ställa in en spelarinstans som ska startas eller stoppas är så enkelt som att anropa de lätt igenkända metoderna på spelaren, som visas här :.

Att anropa uppspelningsmetoden i SimpleAudioPlayer-klassen delegerar helt enkelt samtalet till startmetoden på spelarinstansen. När du har anropat den här metoden bör du höra ljudfilen som spelas genom de lokala högtalarna. På samma sätt delegerar stoppmetoden till spelaren att både stoppa och stänga spelarinstansen.

När du stänger spelarinstansen frigörs alla resurser som användes för att läsa eller spela upp mediefilen. Eftersom detta är ett enkelt exempel är det ett acceptabelt sätt att avsluta en session att stänga spelaren. I en riktig applikation bör du dock noga överväga om du vill bli av med spelaren innan du stänger den. När du har stängt spelaren måste du skapa en ny spelarinstans och vänta på att den ska gå igenom alla dess tillståndsändringar innan du kan spela upp ditt media igen.

Slutligen innehåller denna mediaspelarapplikation en huvudmetod som låter den anropas från kommandoraden genom att skicka in filnamnet. I huvudmetoden gör vi följande samtal, vilket skapar SimpleAudioPlayer :. Det enda andra vi måste göra innan vi kan spela vår ljudfil är att ringa uppspelningsmetoden på den skapade ljudspelaren, som visas här :.

För att stoppa och städa upp ljudspelaren ringer vi följande samtal, som också finns i huvudmetoden :. Kompilera exempelapplikationen genom att skriva javac SimpleAudioPlayer. Detta skapar SimpleAudioPlayer. Ersätt audioFile med filnamnet på en ljudfil på ditt lokala system. Alla relativa filnamn kommer att lösas i förhållande till den aktuella arbetskatalogen. Du bör se några meddelanden som anger filen som spelas. För att sluta spela, tryck på Enter-tangenten.

I föregående avsnitt gick vi igenom stegen för att ställa in ett program som låter dig spela ljudfiler via ett kommandoradsgränssnitt. En av de stora funktionerna i JMF är att du inte behöver veta något om mediefiltyperna för att konfigurera en mediaspelare; allt hanteras internt. I vårt tidigare exempel behövde vi till exempel inte att applikationen skulle skapa en spelare specifikt för en MP3-fil, eftersom MP3-inställningen hanterades för oss.

Som du kommer att se i detta avsnitt gäller detsamma för hantering av videofiler. JMF hanterar alla detaljer för gränssnitt med mediefiltyperna. Huvudskillnaden i att hantera videomedier snarare än ljud är att vi måste skapa en visuell representation av en skärm för att kunna visa videon.

Lyckligtvis hanterar JMF många av dessa detaljer för oss. Vi kommer att skapa en Player-instans ungefär som vi gjorde i föregående exempel och få många av de visuella komponenterna för att skapa vår visuella medievisare direkt från JMF-objekt. I det här avsnittet går vi igenom det andra exempelprogrammet. Se MediaPlayerFrame. I det här avsnittet skapar vi en applikation som kan visa och köra både ljud- och videomedia från din lokala maskin.

Kännedom om AWT och Swing hjälper dig att följa exemplen, men krävs inte. Du kommer att upptäcka att många detaljer som inte täcks här förklaras i källkodskommentarerna. De flesta begrepp, klasser och metoder som vi använder i det här exemplet kommer att vara bekant från det första exemplet.

Grunderna för att ställa in spelaren är nästan identiska. Den största skillnaden är att vi kommer att gräva lite djupare i Player-instansen, särskilt när det gäller att få information om media från Player. Videospelarexemplet är utformat för att köras från kommandoraden, ungefär som exemplet med ljudspelare gjorde, men detta exempel är GUI-baserat.

Vi börjar med att åberopa applikationen och skicka in filnamnet på media, precis som vi gjorde i föregående avsnitt. Därefter visar programmet ett fönster med komponenter som låter oss manipulera media. I de inledande raderna i MediaPlayerFrame definierar vi klassen och förlänger javaxen. JFrame-klass.

Så här definierar vi vår mediaspelare som ett separat fönster på skrivbordet. Alla klienter som skapar en instans av vår mediaspelarklass kan sedan visa den med hjälp av den visningsmetod som definieras i JFrame-klassen. Visa bilden i full storlek. Spelargränssnittet exponerar metoder för att få referenser till utvalda visuella komponenter.

(с) 2019 cermo-lit.ru