ÓÐÁ˳á°ò²ÅÄÜ·É£¬
ǷȱÁé»îµÄ´úÂë¾ÍÏó¶³»µÁ˳á°òµÄÄñ¶ù¡£²»ÄÜ·ÉÏ裬¾ÍÉÙÁ˼¸ÐíÁ鶯µÄÆøÔÏ¡£ÎÒÃÇÐèÒª¸ø´úÂë´øÈ¥ÎÂůµÄÑô¹â£¬ Èý©ÀäµÄ³á°òÖØÐÂ·ÉÆðÀ´¡£
½áºÏʵÀý£¬ ͨ¹ýÓ¦ÓÃOOP¡¢Éè¼ÆÄ£Ê½ºÍÖØ¹¹£¬Äã»á¿´µ½´úÂëÊÇÔõÑùÒ»²½Ò»²½¸´»îµÄ¡£
ΪÁ˸üºÃµÄÀí½âÉè¼ÆË¼Ï룬 ʵÀý¾¡¿ÉÄܼòµ¥»¯¡£ µ«Ëæ×ÅÐèÇóµÄÔö¼Ó£¬³ÌÐò½«Ô½À´Ô½¸´ÔÓ¡£
´Ëʱ¾ÍÓÐÐÞ¸ÄÉè¼ÆµÄ±ØÒª£¬ ÖØ¹¹ºÍÉè¼ÆÄ£Ê½¾Í¿ÉÒÔÅÉÉÏÓó¡ÁË¡£ ×îºóµ±Éè¼Æ½¥Ç÷ÍêÃÀºó£¬Äã»á·¢ÏÖ£¬
¼´Ê¹ÐèÇó²»¶ÏÔö¼Ó£¬ÄãÒ²¿ÉÒÔÉñÇ寸ÏУ¬²»ÓÃΪ´úÂëÉè¼Æ¶ø·³ÄÕÁË¡£
¼Ù¶¨ÎÒÃÇÒªÉè¼ÆÒ»¸öýÌå²¥·ÅÆ÷¡£ ¸ÃýÌå²¥·ÅÆ÷Ä¿ ǰֻ֧³ÖÒôƵÎļþ mp3 ºÍ wav¡£
Èç¹û²»Ì¸Éè¼Æ£¬ Éè¼Æ³öÀ´µÄ²¥·ÅÆ÷¿ÉÄܼܺòµ¥£º
public class MediaPlayer { private void PlayMp3() { MessageBox.Show("Play the mp3 file."); } private void PlayWav() { MessageBox.Show("Play the wav file."); } public void Play(string audioType) { switch (audioType.ToLower()) { case ("mp3"): PlayMp3(); break; case ("wav"): PlayWav(); break; } } }
¼òµ¥µÄ²¥·ÅÆ÷ʵÏÖ´úÂë |
×ÔÈ»£¬Äã»á·¢ÏÖÕâ¸öÉè¼Æ·Ç³£µÄÔã¸â¡£ ÒòΪËü¸ù±¾Ã»ÓÐΪδÀ´µÄÐèÇó±ä¸üÌṩ×îÆðÂëµÄÀ©Õ¹¡£
Èç¹ûÄãµÄÉè¼Æ½á¹ûÊÇÕâÑù£¬ ÄÇôµ±ÄãΪӦ½Ó²»Ï¾µÄÐèÇó±ä¸ü¶ø½¹Í·ÀöîµÄʱºò£¬ Äã¿ÉÄܸüÏ£ÍûÈÃÕâ·ÝÉè¼Æµ½ËüÓ¦¸ÃÈ¥µÄµØ·½£¬
¾ÍÊÇ×ÀÃæµÄ»ØÊÕÕ¾¡£
×Ðϸ·ÖÎöÕâ¶Î´úÂ룬 ËüÆäʵÊÇÒ»ÖÖ×î¹ÅÀϵÄÃæÏò½á¹¹µÄÉè¼Æ¡£ Èç¹ûÄãÒª²¥·ÅµÄ²»½ö½öÊÇ
mp3 ºÍ wav,Äã»á²»¶ÏÔö¼ÓÏàÓ¦µØ²¥·Å·½·¨£¬ È»ºóÈà switch ×Ó¾äÔ½À´Ô½³¤£¬ Ö±ÖÁ´ïµ½ÄãÊÓÏß¿´²»µ½µÄµØ²½¡£
ºÃ°É£¬ÎÒÃÇÏÈÀ´ÌåÑé¶ÔÏóµÄ¾«Éñ¡£¸ù¾ÝOOPµÄ˼Ï룬ÎÒÃÇÓ¦¸Ã°Émp3ºÍwav¿´×÷ÊÇÒ»¸ö¶ÓÀïµÄ¶ÔÏó£¬ÄÇôÊÇÕâÑùÂð£º
public class MP3 { public void Play() { MessageBox.Show("Play the mp3 file."); } } public class WAV { public void Play() { MessageBox.Show("Play the wav file."); } }
ÌáÈ¡MP3ºÍWAVÀà |
ºÃÑùµÄ£¬ÄãÒѾ֪µÀÔõô½¨Á¢¶ÔÏóÁË¡£¸ü¿ÉϲµÄÊÇ£¬ÄãÔÚ²»Öª²»¾õÖÐÓ¦ÓÃÁËÖØ¹¹µÄ·½·¨£¬°ÑÔÀ´ÄǸöÀ¬»øÉè¼ÆÖеķ½·¨Ãû×Ö¸ÄΪÁËͳһµÄPlay()·½·¨¡£ÄãÔÚºóÃæµÄÉè¼ÆÖУ¬»á·¢ÏÖÕâÑù¸ÄÃûÊǶàôµÄ¹Ø¼ü£¡
µ«ËƺõÄ㲢ûÓл÷ÖÐÒªº¦£¬ÒÔÏÖÔڵķ½Ê½È¥¸ü¸ÄMediaPlayerµÄ´úÂ룬ʵÖʲ¢Ã»Óжà´óµÄ±ä»¯¡£
¼ÈÈ»mp3ºÍwav¶¼ÊôÓÚÒôƵÎļþ£¬ËûÃǶ¼¾ßÓÐÒôƵÎļþµÄ¹²ÐÔ£¬ÎªÊ²Ã´²»ÎªËûÃǽ¨Á¢Ò»¸ö¹²Í¬µÄ¸¸ÀàÄØ£º
public class AudioMedia { public void Play() { MessageBox.Show("Play the AudioMedia file."); } }
ÌáÈ¡¸¸ÀàAudioMedia.cs |
ÏÖÔÚÎÒÃÇÒýÈëÁ˼̳еÄ˼Ï룬 OOP Ò²ËãÊÇÏóÄ£ÏóÑùÁË¡£
µÃÒâÖ®Ó࣬ »¹ÊÇÈÏÕæ·ÖÎöÏÖʵÊÀ½ç°É¡£ ÆäʵÔÚÏÖʵÉú»îÖУ¬ ÎÒÃDz¥·ÅµÄÖ»»áÊÇijÖÖ¾ßÌåÀàÐ͵ÄÒôƵÎļþ£¬
Òò´ËÕâ¸öAudioMedia ÀಢûÓÐʵ¼ÊʹÓõÄÇé¿ö¡£¶ÔÓ¦ÔÚÉè¼ÆÖУ¬ ¾ÍÊÇ£º Õâ¸öÀàÓÀÔ¶²»»á±»ÊµÀý»¯¡£
ËùÒÔ£¬ »¹µÃ¶¯Ò»ÏÂÊÖÊõ£¬ ½«Æä¸ÄΪ³éÏóÀà¡£ ºÃÁË£¬ ÏÖÔڵĴúÂëÓеã OOP
µÄ¸Ð¾õÁË£º
public abstract class AudioMedia { public abstract void Play(); } public class MP3 : AudioMedia { public override void Play() { MessageBox.Show("Play the mp3 file."); } } public class WAV : AudioMedia { public override void Play() { MessageBox.Show("Play the wav file."); } } public class MediaPlayer { public void Play(AudioMedia media) { media.Play(); } }
½«¸¸Àà¸ÄΪ³éÏóÀàºóµÄ½á¹¹ |
¿´¿´ÏÖÔÚµÄÉè¼Æ£¬ ¼´Âú×ãÁËÀàÖ®¼äµÄ²ã´Î¹ØÏµ£¬ ͬʱÓÖ±£Ö¤ÁËÀàµÄ×îС»¯ÔÔò£¬ ¸üÀûÓÚÀ©Õ¹£¨µ½ÕâÀÄã»á·¢ÏÖ
play ·½·¨Ãû¸ÄµÃ¶àÓбØÒª£©¡£
¼´Ê¹ÄãÏÖÔÚÓÖÔö¼ÓÁË¶Ô WMA ÎļþµÄ²¥·Å£¬ Ö»ÐèÒªÉè¼Æ WMA À࣬ ²¢¼Ì³Ð AudioMedia£¬ÖØÐ´
Play ·½·¨¾Í¿ÉÒÔÁË£¬ MediaPlayerÀà¶ÔÏóµÄ Play ·½·¨¸ù±¾²»Óøı䡣ÊDz»Êǵ½´Ë¾Í¸Ã»ÉÏÔ²ÂúµÄ¾äºÅÄØ£¿
È»ºóµó×êµÄ¿Í»§ÊÇÓÀÔ¶²»»áÂú×ãµÄ£¬ ËûÃÇÔÚ±§Ô¹Õâ¸öýÌå²¥·ÅÆ÷ÁË¡£ÒòΪËûÃDz»ÏëÔÚ¿´×ãÇò±ÈÈüµÄʱºò£¬ Ö»Ìýµ½Ö÷³ÖÈ˵Ľâ˵£¬
ËûÃǸü¿ÊÍû¿´µ½×ãÇòÃ÷ÐÇÔÚÇò³¡±¼ÅܵÄÓ¢×Ë¡£
Ò²¾ÍÊÇ˵£¬ ËûÃÇÏ£ÍûÄãµÄýÌå²¥·ÅÆ÷Äܹ»Ö§³ÖÊÓÆµÎļþ¡£ÄãÓÖ¸ÃÍ´¿àÁË£¬ ÒòΪÔÚ¸ü¸ÄÓ²¼þÉè¼ÆµÄͬʱ£¬ ÔÀ´µÄÈí¼þÉè¼Æ½á¹¹Ëƺõ³öÁËÎÊÌâ¡£
ÒòΪÊÓÆµÎļþºÍÒôƵÎļþÓкܶ಻ͬµÄµØ·½£¬ Äã¿É²»ÄÜ͵ÀÁ£¬ ÈÃÊÓÆµÎļþ¶ÔÏóÈÏÒôƵÎļþ×÷¸¸Ç×°¡¡£
ÄãÐèҪΪÊÓÆµÎļþÉè¼ÆÁíÍâµÄÀà¶ÔÏóÁË£¬ ¼ÙÉèÎÒÃÇÖ§³Ö RM ºÍ MPEG
¸ñʽµÄÊÓÆµ£º
public abstract class VideoMedia { public abstract void Play(); } public class RM : VideoMedia { public override void Play() { MessageBox.Show("Play the rm file."); } } public class MPEG : VideoMedia { public override void Play() { MessageBox.Show("Play the mpeg file. "); } }
ÁíÍâÉè¼ÆÊÓÆµ²¥·ÅÀà |
Ôã¸âµÄÊÇ£¬ Äã²»ÄÜÒ»ÀÍÓÀÒݵØÏíÊÜÔÓÐµÄ MediaPlayer ÀàÁË¡£ ÒòΪÄãÒª²¥·ÅµÄ RM Îļþ²¢²»ÊÇ
AudioMedia µÄ×ÓÀà¡£
²»¹ý²»ÓÃ׿±£¬ ÒòΪ½Ó¿Ú Õâ¸öÀûÆ÷Ä㻹ûÓÐÓÃÉÏ£¨ËäÈ»ÄãÒ²¿ÉÒÔÓóéÏóÀ࣬ µ«ÔÚ C#ÀïÖ»Ö§³ÖÀàµÄµ¥¼Ì³Ð£©¡£ËäÈ»ÊÓÆµºÍÒôƵ¸ñʽ²»Í¬£¬
±ðÍüÁË£¬ ËûÃǶ¼ÊÇýÌåÖеÄÒ»ÖÖ£¬ºÜ¶àʱºò£¬ ËûÃÇÓÐÐí¶àÏàËÆµÄ¹¦ÄÜ£¬ ±ÈÈç²¥·Å¡£
¸ù¾Ý½Ó¿ÚµÄ¶¨Ò壬ÄãÍêÈ«¿ÉÒÔ½«Ïàͬ¹¦ÄܵÄһϵÁжÔÏóʵÏÖͬһ¸ö½Ó¿Ú£º
public interface IMedia { void Play(); } public abstract class AudioMedia : IMedia { public abstract void Play(); } public abstract class VideoMedia : IMedia { public abstract void Play(); }
ÌáÈ¡ÊÓÆµÓëÒôƵµÄ½Ó¿Ú |
ÔÙ¸ü¸ÄһϠMediaPlayer µÄÉè¼Æ¾Í OK ÁË£º
public class MediaPlayer { public void Play(IMedia media) { media.Play(); } } |
ÏÖÔÚ¿ÉÒÔ×ܽáһϣ¬´Ó MediaPlayer ÀàµÄÑݱ䣬ÎÒÃÇ¿ÉÒԵóöÕâÑùÒ»¸ö½áÂÛ£ºÔÚµ÷ÓÃÀà¶ÔÏóµÄÊôÐԺͷ½·¨Ê±£¬
¾¡Á¿±ÜÃ⽫¾ßÌåÀà¶ÔÏó×÷Ϊ´«µÝ²ÎÊý£¬ ¶øÓ¦´«µÝÆä³éÏó¶ÔÏó£¬ ¸üºÃµØÊÇ´«µÝ½Ó¿Ú£¬ ½«Êµ¼ÊµÄµ÷Óú;ßÌå¶ÔÏóÍêÈ«°þÀ뿪£¬ÕâÑù¿ÉÒÔÌá¸ß´úÂëµÄÁé»îÐÔ¡£
²»¹ý£¬ ÊÂÇ鲢ûÓÐÍê¡£ ËäȻһÇп´ÆðÀ´¶¼ºÜÍêÃÀÁË£¬ µ«ÎÒÃǺöÂÔÁËÕâ¸öÊÂʵ£¬ ¾ÍÊÇÍü¼ÇÁË MediaPlayer
µÄµ÷ÓÃÕß¡£
»¹¼ÇµÃÎÄÕÂ×ʼµÄ switch Óï¾äÂ𣿠¿´ÆðÀ´ÎÒÃÇÒѾ·Ç³£Æ¯ÁÁµØ³ýµôÁËÕâ¸ö·³ÄÕ¡£ÊÂʵÉÏ£¬ÎÒÔÚÕâÀïÍæÁËÒ»¸ö¹î¼Æ£¬
½« switch Óï¾äÑÓºóÁË¡£ËäÈ»ÔÚ MediaPlayerÖУ¬ ´úÂëÏԵøɾ»ÀûÂ䣬 Æäʵ·³ÄÕÖ»²»¹ýÊÇת¼Þµ½ÁË
MediaPlayer µÄµ÷ÓÃÕßÄÇÀï¡£
ÀýÈ磬 ÔÚÖ÷³ÌÐò½çÃæÖУº
public void BtnPlay_Click(object sender, EventArgs e) { IMedia media; switch (cbbMediaType.SelectItem.ToString().ToLower()) { case ("mp3"): media = new MP3(); break; case ("wav"): media = new WAV(); break; //ÆäËüÀàÐÍÂÔ£» } MediaPlayer player = new MediaPlayer(); player.Play(media); }
µã»÷¡°²¥·Å¡±°´Å¥ |
Óû§Í¨¹ýÑ¡Ôñ cbbMediaType ×éºÏ¿òµÄÑ¡Ï¾ö¶¨²¥·ÅÄÄÒ»ÖÖÎļþ£¬ È»ºóµ¥»÷ Play °´Å¥Ö´ÐС£ÏÖÔÚ¸ÃÉè¼ÆÄ£Ê½·ÛÄ«µÇ³¡ÁË£¬ÕâÖÖ¸ù¾Ý²»Í¬Çé¿ö´´½¨²»Í¬ÀàÐ͵ķ½Ê½£¬
¹¤³§Ä£Ê½ÊÇ×îÄÃÊֵġ£
ÏÈ¿´¿´ÎÒÃǵŤ³§ÐèÒªÉú²úÄÄЩ²úÆ·ÄØ £¿ ËäÈ»ÕâÀïÓÐÁ½ÖÖ²»Í¬ÀàÐ͵ÄýÌåAudioMedia ºÍ VideoMedia£¨ÒÔºó¿ÉÄܸü¶à£©£¬
µ«ËüÃÇͬʱÓÖ¶¼ÊµÏÖ IMedia ½Ó¿Ú£¬ËùÒÔÎÒÃÇ¿ÉÒÔ½«ÆäÊÓΪһÖÖ²úÆ·£¬Óù¤³§·½·¨Ä£Ê½¾Í¿ÉÒÔÁË¡£
Ê×ÏÈÊǹ¤³§½Ó¿Ú£º
public interface IMediaFactory 2 { 3 IMedia CreateMedia(); 4 } |
È»ºóΪÿÖÖýÌåÎļþ¶ÔÏó´î½¨Ò»¸ö¹¤³§£¬ ²¢Í³Ò»ÊµÏÖ¹¤³§½Ó¿Ú£º
public class MP3MediaFactory : IMediaFactory { public IMedia CreateMedia() { return new MP3(); } } public class RMMediaFactory : IMediaFactory { public IMedia CreateMedia() { return new RM(); } } //ÆäËü¹¤³§ÂÔ£» |
дµ½ÕâÀ Ò²ÐíÓÐÈË»áÎÊ£¬ Ϊʲô²»Ö±½Ó¸ø AudioMedia ºÍ VideoMedia Àà´î½¨¹¤³§ÄØ£¿
ºÜ¼òµ¥£¬ ÒòΪÔÚ AudioMedia ºÍ VideoMedia ÖУ¬ ·Ö±ð»¹Óв»Í¬µÄÀàÐÍÅÉÉú£¬
Èç¹ûΪËüÃǴ¹¤³§£¬ ÔòÔÚ CreateMedia()·½·¨ÖУ¬ ÈÔȻҪʹÓà SwitchÓï¾ä¡£¶øÇÒ¼ÈÈ»ÕâÁ½¸öÀ඼ʵÏÖÁË
IMedia½Ó¿Ú £¬¿ÉÒÔÈÏΪÊÇÒ»ÖÖÀàÐÍ£¬ Ϊʲô»¹ÒªÄÇôÂ鷳ȥÇ붯³éÏ󹤳§Ä£Ê½£¬ À´Éú³ÉÁ½Àà²úÆ·ÄØ£¿
¿ÉÄÜ»¹»áÓÐÈËÎÊ£¬ ¼´Ê¹ÄãʹÓÃÕâÖÖ·½Ê½£¬ ÄÇôÔÚÅжϾßÌå´´½¨Äĸö¹¤³§µÄʱºò£¬ ²»ÊÇÒ²ÒªÓõ½ switch
Óï¾äÂð£¿
ÎÒ³ÐÈÏÕâÖÖ¿´·¨ÊǶԵġ£²»¹ýʹÓù¤³§Ä£Ê½£¬ ÆäÖ±½ÓºÃ´¦²¢·ÇÊÇÒª½â¾ö switch Óï¾äµÄÄÑÌ⣬ ¶øÊÇÒªÑÓ³Ù¶ÔÏóµÄÉú³É£¬
ÒÔ±£Ö¤µÄ´úÂëµÄÁé»îÐÔ¡£ µ±È»£¬ÎÒ»¹ÓÐ×îºóÒ»ÕÐɱÊÖïµÃ»ÓÐʹ³öÀ´£¬µ½ºóÃæÄã»á·¢ÏÖ£¬ switch Óï¾äÆäʵ»áÍêÈ«Ïûʧ¡£»¹ÓÐÒ»¸öÎÊÌ⣬
¾ÍÊÇÕæµÄÓбØÒªÊµÏÖ AudioMedia ºÍ VideoMedia Á½¸ö³éÏóÀàÂ𣿠ÈÃÆä×ÓÀàÖ±½ÓʵÏÖ½Ó¿Ú
²»¸ü¼òµ¥£¿ ¶ÔÓÚ±¾ÎÄÌáµ½µÄÐèÇó£¬ÎÒÏëÄãÊǶԵģ¬ µ«²»Åųý AudioMedia ºÍVideoMedia
ËüÃÇ»¹»á´æÔÚÇø±ð¡£
ÀýÈçÒôƵÎļþÖ»ÐèÒªÌṩ¸øÉù¿¨µÄ½Ó¿Ú£¬ ¶øÊÓÆµÎļþ»¹ÐèÒªÌṩ¸øÏÔ¿¨µÄ½Ó¿Ú¡£ Èç¹ûÈà MP3¡¢ WAV¡¢
RM¡¢ MPEG Ö±½ÓʵÏÖ IMedia ½Ó¿Ú£¬ ¶ø²»Í¨¹ýAudioMedia ºÍ VideoMedia£¬
ÔÚÂú×ãÆäËüÐèÇóµÄÉè¼ÆÉÏÒ²ÊDz»ºÏÀíµÄ¡£ µ±È»ÕâÒѾ²»°üÀ¨ÔÚ±¾Îĵķ¶³ëÁË¡£
ÏÖÔÚÖ÷³ÌÐò½çÃæ·¢ÉúÁËÉÔÐíµÄ¸Ä±ä£º
public void BtnPlay_Click(object sender, EventArgs e) { IMediaFactory factory = null; switch (cbbMediaType.SelectItem.ToString().ToLower()) { case ("mp3"): factory = new MP3MediaFactory(); break; case ("wav"): factory = new WAVMediaFactory(); break; //ÆäËûÀàÐÍÂÔ£» } MediaPlayer player = new MediaPlayer(); player.Play(factory.CreateMedia()); } |
дµ½ÕâÀ ÎÒÃÇÔٻعýÍ·À´¿´ MediaPlayer Àà¡£
Õâ¸öÀàÖУ¬ÊµÏÖÁË Play ·½·¨£¬ ²¢¸ù¾Ý´«µÝµÄ²ÎÊý£¬ µ÷ÓÃÏàӦýÌåÎļþµÄ Play ·½·¨¡£ ÔÚûÓй¤³§¶ÔÏóµÄʱºò£¬
¿´ÆðÀ´Õâ¸öÀà¶ÔÏóÔËÐеúܺá£
Èç¹ûÊÇ×÷Ϊһ¸öÀà¿â»ò×é¼þÉè¼ÆÕßÀ´¿´£¬ ËûÌṩÁËÕâÑùÒ»¸ö½Ó¿Ú£¬ ¹©Ö÷½çÃæ³ÌÐòÔ±µ÷ÓᣠȻ¶øÔÚÒýÈ빤³§Ä£Ê½ºó£¬
ÔÚÀïÃæÊ¹Óà MediaPlayer ÀàÒѾ¶àÓàÁË¡£
ËùÒÔ£¬ÎÒÃÇÒª¼ÇסµÄÊÇ£¬ ÖØ¹¹²¢²»½ö½öÊÇÍùÔÀ´µÄ´úÂëÌí¼ÓеÄÄÚÈÝ¡£ µ±ÎÒÃÇ·¢ÏÖһЩ²»±ØÒªµÄÉè¼ÆÊ±£¬
»¹ÐèÒª¹û¶ÏµØÉ¾µôÕâЩÈßÓà´úÂë¡£
public void BtnPlay_Click(object sender, EventArgs e) { IMediaFactory factory = null; switch (cbbMediaType.SelectItem.ToString().ToLower()) { case ("mp3"): factory = new MP3MediaFactory(); break; case ("wav"): factory = new WAVMediaFactory(); break; //ÆäËûÀàÐÍÂÔ£» } IMedia media = factory.CreateMedia(); media.Play(); } |
Èç¹ûÄãÔÚ×ʼûÓÐÌå»áµ½ IMedia ½Ó¿Ú µÄºÃ´¦£¬ ÔÚÕâÀïÄãÓ¦¸ÃÒѾÃ÷°×ÁË¡£ÎÒÃÇÔÚ¹¤³§ÖÐÓõ½Á˸ýӿڣ»
¶øÔÚÖ÷³ÌÐòÖУ¬ ÈÔȻҪʹÓÃ¸Ã½Ó¿Ú ¡£Ê¹ÓýӿÚÓÐʲôºÃ´¦£¿ÄǾÍÊÇÄãµÄÖ÷³ÌÐò¿ÉÒÔÔÚûÓоßÌåÒµÎñÀàµÄʱºò£¬ ͬÑù¿ÉÒÔ±àÒëͨ¹ý¡£Òò´Ë£¬
¼´Ê¹ÄãÔö¼ÓÁËеÄÒµÎñ£¬ÄãµÄÖ÷³ÌÐòÊDz»ÓøĶ¯µÄ¡£
²»¹ý£¬ ÏÖÔÚ¿´ÆðÀ´£¬Õâ¸ö²»ÓøĶ¯Ö÷³ÌÐòµÄÀíÏ룬 ÒÀȻûÓÐÍê³É¡£¿´µ½ÁË Âð£¿ÔÚBtnPlay_Click()ÖУ¬
ÒÀÈ»Óà new ´´½¨ÁËһЩ¾ßÌåÀàµÄʵÀý¡£
Èç¹ûûÓÐÍêÈ«ºÍ¾ßÌåÀà·Ö¿ª£¬ Ò»µ©¸ü¸ÄÁ˾ßÌåÀàµÄÒµÎñ£¬ÀýÈçÔö¼ÓÁËÐµĹ¤³§À࣬ ÈÔÈ»ÐèÒª¸Ä±äÖ÷³ÌÐò£¬
ºÎ¿öÌÖÑáµÄ switchÓï¾äÈÔÈ»´æÔÚ£¬ ËüºÃÏñÊdzá°òÉÏ×ÌÉúµÄ¶¾Áö£¬ ÌáʾÎÒÃÇ£¬ ËäÈ»³á°òÒѾ´Ó½©ÀäµÄÊÀ½çÀ︴»î£¬µ«ÕâË«³á°ò»¹ÊÇÓв¡µÄ£¬
²¢²»ÄÜÕý³£µØ·ÉÏè¡£
ÊÇʹÓÃÅäÖÃÎļþµÄʱºòÁË¡£ÎÒÃÇ¿ÉÒÔ°ÑÿÖÖýÌåÎļþÀàÀàÐ͵ÄÏàÓ¦ÐÅÏ¢·ÅÔÚÅäÖÃÎļþÖУ¬ È»ºó¸ù¾ÝÅäÖÃÎļþÀ´Ñ¡Ôñ´´½¨¾ßÌåµÄ¶ÔÏó¡£
²¢ÇÒ£¬ÕâÖÖ´´½¨¶ÔÏóµÄ·½·¨½«Ê¹Ó÷´ÉäÀ´Íê³É¡£
Ê×ÏÈ£¬ ´´½¨ÅäÖÃÎļþ£º
<appSettings> 2 <add key="mp3" value="WingProject.MP3Factory" /> 3 <add key="wav" value="WingProject.WAVFactory" /> 4 <add key="rm" value="WingProject.RMFactory" /> 5 <add key="mpeg" value="WingProject. MPEGFactory" /> 6 </appSettings> |
È»ºó£¬ ÔÚÖ÷³ÌÐò½çÃæµÄ Form_Load ʼþÖУ¬ ¶ÁÈ¡ÅäÖÃÎļþµÄ ËùÓÐ key Öµ£¬ Ìî³äcbbMediaType
×éºÏ¿ò¿Ø¼þ£º
public void Form_Load(object sender, EventArgs e) 2 { 3 cbbMediaType.Items.Clear(); 4 foreach (string key in ConfigurationSettings.AppSettings.AllKeys) 5 { 6 cbbMediaType.Item.Add(key); 7 } 8 cbbMediaType.SelectedIndex = 0; 9 } |
×îºó£¬ ¸ü¸ÄÖ÷³ÌÐòµÄ Play °´Å¥µ¥»÷ʼþ£º
public void BtnPlay_Click(object sender, EventArgs e) 2 { 3 string mediaType = cbbMediaType.SelectItem.ToString().ToLower(); 4 string factoryDllName = ConfigurationSettings.AppSettings[mediaType].ToString(); 5 //MediaLibrayΪÒýÓõÄýÌåÎļþ¼°¹¤³§µÄ³ÌÐò¼¯; 6 IMediaFactory factory = (IMediaFactory)Activator.CreateInstance 7 ("MediaLibrary", factoryDllName).Unwrap(); 8 IMedia media = factory.CreateMedia(); 9 media.Play(); 10 } |
ÏÖÔÚÄñ¶ùµÄ³á°ò²»½ö½ö¸´»î£¬ÓÐÁË¿ÉÒԷɵÄÄÜÁ¦£»Í¬Ê±ÎÒÃÇ»¹¸³ÓèÕâË«³á°ò¸üÇ¿µÄ¹¦ÄÜ£¬Ëü¿ÉÒԷɵøü¸ß£¬ ·ÉµÃ¸üÔ¶£¡ÏíÊÜ×ÔÓÉ·ÉÏèµÄã«Òâ°É¡£
ÉèÏëһϣ¬ Èç¹ûÎÒÃÇÒªÔö¼ÓijÖÖýÌåÎļþµÄ²¥·Å¹¦ÄÜ£¬ Èç AVIÎļþ¡£ ÄÇô£¬ ÎÒÃÇÖ»ÐèÒªÔÚÔÀ´µÄÒµÎñ³ÌÐò¼¯Öд´½¨
AVI À࣬ ²¢ÊµÏÖ IMedia ½Ó¿Ú £¬ ͬʱ¼Ì³Ð VideoMedia Àà¡£
ÁíÍâÔÚ¹¤³§ÒµÎñÖд´½¨ AVIMediaFactory À࣬ ²¢ÊµÏÖ IMediaFactory ½Ó¿Ú¡£
¼ÙÉèÕâ¸öÐµĹ¤³§ÀàÐÍΪ WingProject.AVIFactory£¬
ÔòÔÚÅäÖÃÎļþÖÐÌí¼ÓÈçÏÂÒ»ÐУº
<add key="avi" value="WingProject.AVIFactory" /> |
¶øÖ÷³ÌÐòÄØ£¿ ¸ù±¾²»ÐèÒª×öÈκθı䣬 ÉõÖÁ²»ÓÃÖØÐ±àÒ룬ÕâË«³á°òÕÕÑù¿ÉÒÔ×Ô ÈçµØ·ÉÐУ¡
|