å
¥é
ãããããããçŽ
100幎åã®10幎åãå
å»¶ã°ãã ããç§ã®å¿ãã€ãã¿å§ãããšããç§ã¯ãŸã ããã䜿ãããšãã§ããã®ã«ïŒç§ã®å¿ïŒãç§ã¯æåœèã建èšããå»¶æãããæ
äºã®ownã«æ²ãŸãªãããã«ããå¿
èŠããããšæ±ºããŸããã ãã¡ããããã®æç¹ã§ã¯ãã§ã«ããªãã®æ°ã®ç°ãªããªãã€ã³ããŒãã¢ã©ãŒã ãã·ã§ããŒãããã³ãã®ä»ã®ããŸããŸãªãã¹ããŒãããŠã©ããããããŸãããããã€ãã®ããã«-ã¡ã¬ãã€ãã®ãã«ããã¡ã€ã«ããã£ãŠããåžžã«ä»ã®èª°ããããè¿ããããçè§£ããããã§ãã ç¡é§ã«ã圌ã¯å人ããããŒã·ãã¯ã«é¢ããæ¬ãåããŸãããïŒ
ãããããã€ãã®ããã«ãé çªã«ãã¹ãŠã«ã€ããŠã
10-15幎å
ããŒã·ãã¯ã®ç ç©¶ã¯ããã®çŽ æŽãããYPã®ããŸããŸãªã¿ã€ããå«ãã«ãŒããªããžã䜿çšããŠãSuborïŒããŒããŒããåãããã³ãã£ãŒïŒã®æä»£ã«å§ãŸããŸããã æ¬¡ã«ãDOSã®ã³ã³ãã¥ãŒã¿ãŒã§å€ãè¯ããã«ãŒã¹ã¯ãªãŒã³qbã䜿çšããŸãã ããŠãthenç¶ãšããããã°ã©ãã®ããã«æããŠãç§ã¯æªç©ã«åãæ¿ããŸããïŒã¯ãïŒããŒãã«16MBã®486ããã»ããµã®å Žå...ïŒVB5
ãã§ã«é åºã«ããããããŠãããããŸããªãã¿ã³ã®æã§ãŠã£ã³ããŠãæ¢ã«åœ«å»ããŠãããšããç§ã¯æçšãªäœããæžãããšã«ããŸããã ããŠãããã§ãã®ãããªå¿
èŠæ§ãçŸããŸããã å®¶ã®ç®èŠãŸãæèšã«é·ãéæ
£ããŠããã®ã§ãããšããã¹ãŠãåæã«é³Žã£ãŠãããšããŠããéãã«ç ãããšãã§ããŸããã
ããŸãããšæã£ãã®ã¯ããç§ã®ã¹ããŒã«ãŒïŒ18ã¯ããïŒïŒã¯ããããç§ãè²ãŠãŠãããã§ããããã
ç§ã¯ã·ã³ãã«ãªãã®ããå§ããŸããããã©ãŒã ã«ã¿ã€ããŒãæããããã«ããã€ãã®ããã¹ãããã¯ã¹ãšãStartïŒããã¿ã³ãæã¡èŸŒã¿ãŸããã 圌ã¯ç§ãã¬ã€ãºãéå§ã§ããããã«ãªããŸã§ã®æéãã¬ã€ãºããå¿
èŠãããåæ°ããããŠãã«ããªã¥ãŒã ã§winampã§èµ·åããå¿
èŠã®ããmp3ãã¡ã€ã«ãèšå®ããŸããã
é·ããŠãçããŠããæ¯åãäžæããåã«èšå®ããªããã°ãªããªãåæ°ã«ã€ããŠèããã®ã«ããããããŠããŸãã ãã¹ãŠã®ãã«ã鳎ããå§ããæéãèšå®ããããšã決å®ãããŸããã ããã«ãææ¥ããšã«ç«ã¡äžããæéã確ä¿ããå¿
èŠããããŸããã ãŸããç»é¢ã«ã¹ããã«ãŒã衚瀺ããŠã仿¥ã®ã¹ã±ãžã¥ãŒã«ãã€ãã³ãã®ã°ã«ãŒããããã«ãªãã«ããæ©èœïŒå€äŒã¿ã®å°æ¥ãã»ãã·ã§ã³ãçµãã£ãæ¹æ³ïŒãããã«ã¯å€éã«ã³ã³ãã¥ãŒã¿ãŒããããã¯ããæ©èœã衚瀺ããããšèããŸããã ã¯ãã圌èªèº«ã¯ããã¯ãè§£é€ã§ããŸããã§ããã ãã®ä»...
ç§ã¯èªåã§mp3ãåçããŸã
...ãããŠããããè¡ãããã«å¥è·¡ã®ç®èŠãŸãæèšãæããããšãã§ãããªãããªãWinampã§ãã¡ã€ã«ãå®è¡ããå¿
èŠããããŸãã ãŠã£ãã³ãã§ã¯ãé³éãäžããããåé€ãããã§ããŸãããããã«å€ãã®ããšãã§ããæçµçã«ã¯ç ãããšãã§ããŸãã
MSDNãæäŸããæåã®ãœãªã¥ãŒã·ã§ã³ã§ãã
MCI㯠ãç§ã®ãããªãã¯ãŒã«ãªãããã°ã©ãã«ãšã£ãŠå®å
šã«ã¹ããŒããã³ããããªããšã¯èŠãªãããŸããã§ããããéã«ãBASIC mp3ã§ã®ãã³ãŒãã¯ã¹ããŒãã£ããããšèããŸããã æçµçã«ã圌ã¯vbç°å¢ã«ããŸãçµ±åãããCOMãªããžã§ã¯ãã«èœã¡çããéåžžã«æè»ã«åçãå¶åŸ¡ããåçã®é²è¡ç¶æ³ã«é¢ããå¿
èŠãªæ
å ±ãååŸããããšãå¯èœã«ããŸããã
IGraphBuilderã®æã
æ¥ãŸãã ïŒvbã®è
žå
ã§ã¯FilgraphManagerãšåŒã°ããŠããŸãããå®å
šã«æ£ç¢ºã§ã¯ãããŸããããç°¡åã«ããããã«ããããŸãïŒã
ãã¹ãŠã®ã³ãŒãã¯é³è
åããïŒ
Dim mpl As New FilgraphManager, mplinfo As IMediaPosition Function OpenMP3(ByVal mp3file As String) As Boolean On Error Resume Next mpl.RenderFile mp3file If Err.Number <> 0 Then Set mplinfo = mpl Timer1.Enabled = True OpenMP3 = True Exit Function End If OpenMP3 = False End Function Sub Timer1_Timer() Label1.Caption = mplinfo.CurrentPosition End Sub
ããã«å€§åŠã§ã®ãã¹ãŠã®ã»ãã·ã§ã³ã«åæ Œãããã§ã«çµäºãããã®ããã«ãç§ã¯å¹žãã«ãªããŸããã
VB5ã®ã¢ã³ã¹ã¿ãŒã¢ã©ãŒã ããŠãC ++ã¯ã©ãã«ãããŸããïŒïŒ
ããããããã«ãã³ã³ãã¥ãŒã¿ãŒãéããããããã®ã¢ã³ã¹ã¿ãŒãæžããŠããéãç§ã¯ããã»ã©ã¯ãŒã«ãªããã°ã©ããŒã§ã¯ãªãã£ãããç®èŠãŸãæèšã¯ãã°ãã°ç§ã倱æãããã 圌ã¯è©Šéšã®ããã«ç®ãèŠãŸãããã€ãã³ãã®æéãã¹ãããããæ¬¡ã®ã€ãã³ããåŸ
ã€ããšã«ç§»ããŸãããããŠãrogæ
¢ãªäººã®äžã§ã圌ã¯ç§ã«ç®ãèŠãŸããŠããããšã瀺ããŸããã圌ã¯é³ãåºããŸããã ïŒãã¯ãŒã«ãªãããã°ã©ããŒã®å Žåã«ããããããšã§ããïŒç§ã¯ãä»ã¯èªåã«æ¯ã¹ãŠééããªãã¯ãŒã«ã ãšæ±ºããC ++ã§æžãçŽããŸãïŒ Straustrupã«ããèè
ã®æ¬ãã¯ã¬ã€ãžãŒãªéé¡ã§è²·ã£ãã®ã¯ç¡é§ã ã£ãã®ã§ããããïŒ
åœæãç§ã¯winapiãããªã容èªããŠãããæã«ã¯ã¯ã©ã¹ãæ¿å
¥ããStraustrupãå·çããæ¬ã®ç®æ¬¡ãèªã¿ãŸããã æ°æ¥åŸãç®èŠãŸãæèšã®ã¹ã±ã«ãã³ãæããŠãç§ã¯åœŒãèªåã§mp3ãåçããå¿
èŠããããšæ±ºããŸãããã¡ãã£ã¢ãã¬ãŒã€ãŒãwinampãªã©ã¯ãããŸããã éåžžã©ãããMCIãæåŠãããŸããã
ããããã以åãç§ã¯å
šèœã§ã¯ãªãã£ããããŸã äœããèããŠãããšæããŸããã ãããŠãåãFilterGraphã䜿çšããŠãç°¡åãªã¯ã©ã¹ããã°ããäœæããç ç©¶ãç¶ããŸãã ã¯ãã
MSDNã®
äŸã¯ãã®ã·ã³ãã«ãã«æºã¡ãŠããŸãã
ããã«ã¯ã©ã¹ãäœããã€ãã³ãã®å®è¡ãèŠæ±ããèŸæ±åŒ·ãåŸ
ã£ãŠ...
ãããã°ã©ã ã¯ç¡å¹ãªæäœãå®è¡ãããããéããããŸã...ã
ãªããŠãã³ã»ã³ã¹ïŒ ã³ããŒã¢ã³ãããŒã¹ãã³ãŒãã®æ°è¡ã§ã©ãããã°ééããç¯ãããšãã§ããŸããïŒ ãã¡ã€ã«ãåãã§ã¯ãªãã®ã§ããããïŒ ãªããžã§ã¯ããåæåãããªãã£ãã®ã§ããããïŒ æ®µéçãªãã§ãã¯ã«ãããRenderFileã¡ãœããã®åŒã³åºãã§äŸå€ãå®å®ããŠã¹ããŒãããŸããã
å€ãç¥ç¶ã®Googleã¡ãœãã
ã³ãŒããæžã代ããã«ãã³ãŒããæžã代ããã«ãç§ã¯ãã¹ãŠãã¯ã©ãã·ã¥ããã¹ã¿ãã¯ã質åäžã®ã³ãŒãã®ãšã©ãŒãªã©ãæžããæ€çŽ¢ã¯ãšãªãæžãå§ããŸããããç§ãèŠããã®ã§ã¯ãããŸããã§ããã ãã¹ãŠã®äººã«æå¹ãªã³ãŒãã¯ç§ã«ã¯æ©èœããŸããã ããããã®äžå¯è§£ãªgrafbildersãããããããMCIãæã«åããè¡ã£ãŠãã ããããšããã¢ããã€ã¹ãèªãã§ã圌ã®ãšãŽãæŽçããMCIã§æ¯ãåã¿ãªããã³ããŒããŸããã
åã³F5ãmciSendStringãããã³...
ãããã°ã©ã ã¯ç¡å¹ãªæäœãå®è¡ãããããéããããŸã...ã
圌ã¯ã¢ãã¿ãŒãééã£ãããŒããŒããããã»ããµã§çœªãç¯ãå§ããŸãããçªç¶ãå·¥å Žã§æããããããšãã©ããã£ãŠããã®ãå¿ããŠããŸããŸããã MS Webãµã€ãGraphEditãŠãŒãã£ãªãã£ã®è
žå
ã§èŠã€ãããŸãã

ã³ã³ãã¥ãŒã¿ãŒæè¡ã®ããé«ãå¢åãæããã«ç§ã«åããŠããã
ãã¹ãŠã詊ããŠãããŸã äœãæ©èœããªãå Žå-RTFM
幞ããªããšã«ã
IGraphBuilderã«ã¯
SetLogFileã¡ãœããã
ãããŸãã éåžžã«è¯ãæ¹æ³ã§ãã ããããªããã°ãçµã¿èŸŒã¿ã®éã¢ã»ã³ãã©ãŒã®ã·ãŒããæãäžããŠãç§ã¯ééããªãå¹³åãšç¡ç ã倱ããŸãã
ããäžåºŠãããã°ãéå§ããã³ãŒãããéåžžã«é ãé¢ããã¢ãã¬ã¹ã§äŸå€ã¡ãã»ãŒãžãçŒãä»ããŸãããã¹ã¿ãã¯ããã®ã¢ãã¬ã¹ãå±ããã¢ãžã¥ãŒã«ã®ååã¯ãªããåéããããã°ãèªããšäŸ¿å©ã§ããã
圌ãéåžžã«éå±ã§ãããšããäºå®ã«ããããããããããã圌ã®ç ç©¶ã¯å ±ãããŸããïŒ
ãã¡ã€ã«dã®è¡šç€ºïŒ\ 437236.mp3
ãã¡ã€ã«ã®ã¡ãã£ã¢ã¿ã€ãã¯0xe436eb83 ...ãµãã¿ã€ã0xe436eb87 ...
clsidãœãŒã¹ãã£ã«ã¿ãŒ0xe436ebb5 ...
...
ã¬ã³ããªã³ã°ïŒQueryInternalStreamsã¡ãœãããšã©ãŒã 2914b8cã§ãã£ã«ã¿ãŒ
ã¬ãã«2ããæ»ã
æãæ»ãïŒ é£çµ¡å
2914fbcãåæãããŸãã
æãæ»ãïŒ é£çµ¡å
293a804ã¯åæãããŠããŸã
ã¬ã³ããªã³ã°ïŒé£çµ¡å
ãªã-2914b8cãã£ã«ã¿ãŒã§äœ¿çšãããé£çµ¡å
ãèŠã€ãããŸãã
æãæ»ãïŒ ãã£ã«ã¿ãŒã®åãå€ã2914b8c
ã¬ã³ããªã³ã°ïŒè¡šç€ºåããã€ã¹ã§æ°ãããã£ã«ã¿ãŒã䜿çšããŠã¿ãŠãã ããïŒswïŒ{083863F1-70DE-11D0-BD40-00A0C911CE86} \ {138130AF-A79B-45D5-B4AA-87697457BA87} ...
ãããŠäœããããŸããã
ããããããã«ïŒå®éãç ããªãæ¥åŸïŒçµè«ãåºãããŸããïŒCLSID = {138130AF-A79B-45D5-B4AA-87697457BA87}ã®ç¹å®ã®ãã£ã«ã¿ãŒã¯å€±æããŸã
ããŒããŒãã¹ã
ããã«ã¬ãžã¹ããªãéãããã®CLSIDãèŠã€ããŠã次ã®ããšãçºèŠããŸããã

ãããç§ã®èŠããã§ãã7人ã¯ããã®6çªç®ã®
ããŒã« ã
ã€ã®ãå
¥ããªãã§ãã ãã
...äœããããŸããããªããŠããç§ã¯çœªãç¯ããŸããã èããŸããã§ããã
Nero 6ãã¢ã³ã€ã³ã¹ããŒã«ããŸããããã¹ãŠç²åŸããŸããã
ã€ã³ã¹ããŒã«æžã¿ã åäœã忢ããŸããã
ããããããã§ç§ã¯é çªã«ç±ããªããåé¡ãããã»ã©ç°¡åã«è§£æ±ºããªããšæ±ºããŸããã 圌ã¯çãçãã²ãããNero 6ãåã³ã€ã³ã¹ããŒã«ããèãå§ããŸããïŒç®èŠãŸãæèšãåé€ããã«åçããã«ã¯ã©ãããã°ããã§ããïŒ
casã¯ãã éããªãã£ã
ããã§ãããŸããŸãªãã¹ãã®æ·±ãã«é¢ããMSDNããã¥ã¡ã³ããèªãããšã§ãmp3ïŒããã³ã¡ãã£ã¢ãã¡ã€ã«ïŒã¯æ¬¡ã®ã¢ã«ãŽãªãºã ã«åŸã£ãŠåçããããšããçµè«ã«éããŸããã
1. IBaseFilterã«ãœãŒã¹ãã¡ã€ã«ãããŒããããŸãã
2.ãµãŠã³ãããµãŠã³ãïŒãŸãã¯ãã®ä»ã®åºåïŒããã€ã¹ã«åºåãããã£ã«ã¿ãŒãæ€çŽ¢ããŸãã
3.ãœãŒã¹ããã®ããŒã¿ã¹ããªãŒã ãåºåããã€ã¹ãçè§£ã§ããããŒã¿ã¹ããªãŒã ã«å€æããäžéãã£ã«ã¿ãŒãæ€çŽ¢ããŸãã
mp3ãã¡ã€ã«ã®è§£æäŸã¯æ¬¡ã®ããã«ãªããŸãã
1.å
¥åãã¡ã€ã«ã®å
容ãIBaseFilterã«ããŒãããŸãã
2.ãã¡ã€ã«ãã£ã«ã¿ãŒããŒãµãŒãæ¢ããŠããŸãã
3.ãªãŒãã£ãªã¹ããªãŒã ã§ãã£ã«ã¿ãŒãã³ãŒããŒãæ¢ããŠããŸãã
4.ãã®ã¹ããªãŒã ãåºåããã€ã¹ã«éä¿¡ãããã£ã«ã¿ãŒãæ¢ããŠããŸã
ãããããã¹ãŠãã³ã§æ¥ç¶ããŸãã åºåãã³ã¯å
¥åãã³ã«æ¥ç¶ããå¿
èŠããããŸãã ãã®å Žåãåºåã®ã¡ãã£ã¢ã¿ã€ãã¯å
¥åã®ã¡ãã£ã¢ã¿ã€ãã«å¯Ÿå¿ããå¿
èŠããããŸãã å®éãæ¬¡ã®ããã«èŠããŸãã倧éã®ã¯ã€ã€ãã³ã³ãã¥ãŒã¿ãå€ãããŠã¹ãããã³å€§éã®ã¢ããã¿ããããŸãã ãããŠããã¹ãŠã®ã³ãã¯ã¿ãçžäºæ¥ç¶ããããŸã§ã匷åŒã«ããŸããŸãªã¢ããã¿ã«ã¯ã€ã€ãçªã£èŸŒã¿ãŸãã ç§ã®å Žåãã¢ã«ãŽãªãºã ã«ã¯ãã1ã€ã®æ¡ä»¶ã远å ãããŸããããã®ã¢ããã¿ãŒïŒãã£ã«ã¿ãŒïŒãNero 6ããã®ãã®ã§ããå Žåã¯ãããã«ç Žæ£ããå床觊ããããšã¯ãããŸããã
ç§åŠçãªçªãæ¹æ³
ãã£ã«ã¿ãŒã®ã»ããããããŸãïŒ
IFilterMapperã§ååŸã§ããŸã
åãã£ã«ã¿ãŒã«ã¯ããã³ã®ã»ããïŒINPUT / OUTPUTïŒãããããã®ãªã¹ãã¯
IBaseFilter :: EnumPinsã¡ãœããããååŸã§ããŸã
åãã³ã«ã¯ãã¡ãã£ã¢ã¿ã€ãã®ã»ãããããããã®ãªã¹ãã¯
IPin :: EnumMediaTypesãä»ããŠååŸã§ããŸãã
ãªã¹ãããæéã§ãã
IFilterMapperãIBaseFilterãIPinã®ã¯ã©ã¹ãã¹ã±ãããïŒä»¥äžã§å®è£
ã確èªã§ãããªã³ã¯ãæäŸããŸãïŒãã·ã¹ãã ã«æ¢ç¥ã®ãã¹ãŠã®ãã£ã«ã¿ãŒããªã¹ãããé©åãªãã³ãæ¢ããããããæ¥ç¶ãå§ããŸããã
é·ãéèŠããã§çãŸããé·ãã³ãŒã äžèšã®é·ãã³ãŒããèªãã®ã«ããããããŠããŸãããïŒ ç²ããã ééããªãç²ããã ãã®ãããé·ãéèŠåŽããŠçãŸãããã®ã³ãŒãã¯ãæåã¯æ©èœããŸããã§ããã ãã³ãäžè¯ã§ãããããã£ã«ã¿ãŒã®ãã£ã«ã¿ãªã³ã°ãäžååã§ãã é³ããããŸããã§ããã
ã¢ãã©ã³ãã£ã¹ãèŠã€ãã
ãã£ã«ã¿ãŒã®åæåã³ãŒãã¯ç°¡åã§ãïŒä»¥åã¯äžåèªã§ããïŒã
CBaseFilterã®åæå CBaseFilter::CBaseFilter(REGFILTER rf) : m_rf( rf ), m_sFilterName( rf.Name ), m_pBaseFilter( NULL ), m_fDontRelease( FALSE ) { } BOOL CBaseFilter::Init() { if ( m_pBaseFilter )
E_NOINTERFACEã§ããããã圌ãããŒãããªãã£ããã£ã«ã¿ãŒïŒæãã§ããmp3ãã£ã«ã¿ãŒãå«ãïŒã®ååã ãã瀺ããŸãã
åã³éåœã¯ç§ãããã¥ã¡ã³ãã«éããŸããããã
ã¯ãã¹ãŠã®éãããã ãã§ã¯ãªãããšãæç¢ºãã€æç¢ºã«æããã«ããŸã
ã...ãã¹ãŠã®ãã£ã«ã¿ãŒãDSãã£ã«ã¿ãŒã§ããããã«ãã®ãããªè€éããå¿
èŠãªããã§ã¯ãããŸãã ã€ãŸããå€ãã®ãã£ã«ã¿ãŒã§ã¯ãæ¬æ ŒçãªDSãã£ã«ã¿ãŒã«ãªãããã«è€éãªèª¿æ»ãæ¹æ³ãè¡ãå¿
èŠã¯ãããŸããã 圌ãã¯åçŽåãããDMOãæãã€ããŸããããããŠããããã®ããã«ãããèªèº«ã§å€ãã®ããšããã
ã©ãããŒã§ãã åæåã¡ãœããã远å ããå¿
èŠããããŸããã
é«åºŠãªïŒïŒïŒCBaseFilterã®åæå BOOL CBaseFilter::Init() { if ( m_pBaseFilter ) return TRUE; HRESULT hr = CoCreateInstance(m_rf.Clsid, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**) &m_pBaseFilter); if ( E_NOINTERFACE == hr )
ãããŠãããã«åŸ
æã®å¥è·¡ããããŸãïŒ ããŠããã®åŸãç§ã¯å·éã«å¡è£
ãããã¹ã±ã«ãã³ã«ããããçš®é¡ã®å¯æããåŒãç¶ããŸããã ããã¯vbããããããã«åªããŠããŸããã
æ°ãã巚倧ãªç®èŠãŸãæèš ããŠããã®èŠæ©ã®ç®èŠãŸãæèšã«é¢é£ããæ®ãã®è©±ã¯ããã¯ãããã»ã©é¢çœããªãã ä»ãç§ã¯ç¢ºãã«æééãã«èµ·ããŸãïŒ ãŸããç§ã¯ããã«æ
£ãããŸã§...
PSïŒ
ãã®ãããªãã¬ãŒã€ãŒã®å®å
šãªã³ãŒããåå°ããŠããŸãã
Visual Studioã®å®è£
ãã¡ãããã³ãŒãã¯å
ããŸããããããã¯ããããæ©é¢è»ã®ç²ã匷ããšæŠéæ©ã®ã¹ããŒãã§æžãããããã§ãããã
ãããããã®èšäºã®ç®çã¯ãåé¡ã«é¢ããç§ã®ãã¹ãŠã®ç ç©¶ãšå
±æããããšã§ããããã®è§£æ±ºçã¯ãç§ãèªåã®æéã«ãããäžã§èŠã€ããããªãã£ãããšã§ãã ãã®ãœãªã¥ãŒã·ã§ã³ããŸã å©çšã§ããªãå Žåã¯ããã§ã«ååšããŠããŸãã