Il titolo è per più per attirare l'attenzione, perché quello di cui voglio parlare non ha come scopo finale quello di spiegare come dotare di un display LCD il vostro Media Center Edition, ma di poterlo sviluppare nel caso ne aveste uno.
Gli MCE più costosi dispongono di un frontalino per poter mostrare informazioni sullo stato in modo da non essere costretti a tener accesa la TV per ascoltare per esempio la musica. Questo è possibile al Media State Service. Trovate nell'SDK una sezione dedicata con la voce "Media State Aggregation Service". Qui c'è pochissimo, ma se andate nella directory dell'SDK\MSAS Sample trovate tutto quello che serve.
In pratica MCE cerca nel registro tutti i componenti COM che implementano la categoria {FCB0C2A3-9747-4C95-9D02-820AFEDEF13F} e l'interfaccia IMediaStatusSink. Si tratta di un interfaccia COM, ma in quella directory che vi ho segnalato trovate una classe wrapper MSASState.dll e due guide per le references del wrapper e su come funziona e installare un esempio managed che trovate nella cartella MediaDisplaySampleApplication. Questo non fa altro che mostrare su un finto display che verrà mostrato sullo schermo ciò che MCE sta facendo. In pratica abbiamo tutto quello che ci serve.
Attenzione all'instazione: sulla guida c'è tutto, ma MSASState.dll va registrato come componente COM usando regasm.exe (o creando le chiavi a mano) e aggiungendo tra "ImplementedCategories" la chiave prima citata. Questo assembly verrà inizializzato e su di esso potranno basarsi tutte le nostre applicazione State Service.
Salve!
Ho cercato per ore di far funzionare il MediaDisplay contenuto nell sdk ma senza un risultato positivo.
Dentro gli help file dell'sdk c'è questo reg file con il quale ho registrato il file msasstate.dll
REGEDIT4
[HKEY_CLASSES_ROOT\MSASState.MediaStatusSink]
@="MSASState.MediaStatusSink"
[HKEY_CLASSES_ROOT\MSASState.MediaStatusSink\CLSID]
@="{380AA9F1-5047-40D0-8BE9-18AB489CA469}"
[HKEY_CLASSES_ROOT\CLSID\{380AA9F1-5047-40D0-8BE9-18AB489CA469}]
@="MSASState.MediaStatusSink"
[HKEY_CLASSES_ROOT\CLSID\{380AA9F1-5047-40D0-8BE9-18AB489CA469}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="MSASState.MediaStatusSink"
"Assembly"="MSASState, Version=1.0.1735.26855, Culture=neutral, PublicKeyToken=a097a53b6b26c493"
"RuntimeVersion"="v1.0.3705"
"CodeBase"="file:///d:/Mediadisplay/MSASState.DLL"
[HKEY_CLASSES_ROOT\CLSID\{380AA9F1-5047-40D0-8BE9-18AB489CA469}\ProgId]
@="MSASState.MediaStatusSink"
[HKEY_CLASSES_ROOT\CLSID\{380AA9F1-5047-40D0-8BE9-18AB489CA469}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CLASSES_ROOT\CLSID\{380AA9F1-5047-40D0-8BE9-18AB489CA469}\Implemented Categories\{FCB0C2A3-9747-4c95-9d02-820AFEDEF13F}]
@="Media Status Sink"
di seguito mi sono accorto che la versione della dll inclusa nell'sdk è diversa ( == 1.0.1740.26563)
quindi ho modificato manualmente le chiavi nel registro.
Qualche idea ?? dove sbaglio ??
grazie,
criss107
Per essere sicuro che faccia tutto giusto, elimina quelle chiavi e usa regasm come ho consigliato io.
regasm /codebase MSASState.DLL
dalla directory in cui si trova. Poi vai nel registro e metti te la chiave tra le implemented categories {FCB0C2A3-9747-4c95-9d02-820AFEDEF13F}
Occhio che è necessario un riavvio
Per inserire un commento, devi registrarti alla nostra community.





Stampa
Download 


Mi sono appena accorto che quando la mia applicazione hosted HTML va in esecuzione, il display (quello hardware) del media center mostra caratteri incomprensibili. Quando poi si ritorna allo start menu di mc torna la scritta "welcome to media center"
Sarà perché l'ho registrata sotto lo start menu?
Come faccio a scriverci qualcosa di sensato?
Continua »»» | Rispondi »»»