어셈블리에서 음악 플레이어를 만들 수 있습니까? (NASM의 줄을 생각하고 있습니다)? 건물을 짓는 과정에서 직면하게 될 장애물은 무엇입니까?어셈블리로 음악 플레이어 만들기
답변
조립이 가능합니다.
주요 문제는 동기 부여입니다. 어셈블리는 환경에서 가장 생산성이 높지 않으므로 은 시작하기 전에 어셈블리에서 무언가를 만들어야합니다.
가능한 한. 주요 장애물은 선택한 API에 연결하는 것이지만 너무 어려울 이유는 없습니다.
예, 그렇습니다. 당신은 단지 무의미한 OS API 및/또는 사운드 라이브러리를 사용할 수 있습니다. 그래서 여러분은 사운드가 컴퓨터 하드웨어에 의해 어떻게 인코딩되고 구현되는지를 배우고 싶다고 가정 할 것입니다.
기본적으로 사운드 카드에는 그 당시 스피커 다이어프램의 목표 위치를 나타내는 값 스트림 (초당 48000 개, 음질에 따라 다양 함)이 필요합니다.
WAV 파일은이 숫자를 파일에 저장하기 만하면됩니다. 이것은 많은 공간을 차지합니다.
- 인간 청각
- 압축에 덜 민감한 주파수의 정밀도를 감소 : 등
MP3, OGG가함으로써 필요한 공간의 양을 감소시키기 위해 데이터의 수학적 변환을 적용 반복적 인 오디오
전체 음악 재생 기능을 실제로 "달성"하려면 오디오 파일을 디코딩하고 사운드 하드웨어를 구성하고 데이터 스트림을 기록해야합니다. 할 수 있습니다 :)
코드는 지원하려는 OS에 따라 다릅니다 (예 : Windows 용 코드는 Linux 용 코드와 완전히 다릅니다).
가장 단순한 경우는 Windows에서 MIDI 및/또는 WAV 파일을 재생하는 프로그램 일 것입니다.이 프로그램은 이미 매우 직접 지원하기 때문에 주로 재생할 파일을 지정하고 거기에서 처리합니다.
어셈블리에서 자신의 MP3 디코더와 비슷한 것을 작성하는 것은 상당히 솔직하게 말하자면 진실하게 고려해야 할 범위 인 광의에 대해 심각하게 고려해야 할 범위입니다.
나는 동의하지 않는다. 데이터 구조를 지원하는 적절한 매크로 어셈블러를 사용하면 어셈블리 언어로 MP3 디코더를 작성하는 것이 C 언어로 작성하는 것보다 훨씬 어렵지는 않습니다 (물론 어셈블리 언어에 능숙하다는 가정하에). 상당히 오래 걸릴 것이지만, MP3 디코더 작성의 어려움은 무엇이 필요한지 이해하는 데 있으며, 일단 장애물을 지나치면 구현 언어는 큰 문제가되지 않습니다. – Artelius
@Artelius : 나의 경험은 그렇지 않다는 것을 나타 냈지만, 누가 경험했는지, 누가 경험했는지는 잘 모르겠다. –
어쩌면 나는 어셈블리 언어에 대해 조금 이나마 열광적이다. :) – Artelius
[이미 Windows 용으로 존재] (http://www.igorware.com/small-player)이지만 닫힌 소스입니다. –