NAudio 사용 소감

3298 단어
항상 많이 하 는 것 은 웹 입 니 다. 클 라 이언 트 가 접촉 하 는 것 이 비교적 적 습 니 다. 지금 은 팀 내 에 역사 제품 이 Winform 으로 쓰 여 있 기 때문에 개발 과정 에서 구덩이 에 대한 소 개 를 받 았 습 니 다.NAudio 가 소개 하 는 친구 들 을 보고 싶 으 면 바로 프로젝트 2 로 넘 어 갈 수 있 습 니 다.
응용 배경 과 수요:
Winform 에는 채 팅 정 보 를 표시 하기 위해 웹 브 라 우 저가 내장 되 어 있 으 며, Winform 은 타이머 로 서버 의 새로운 메 시 지 를 주동 적 으로 끌 어 당 긴 후 html 를 생 성하 여 웹 브 라 우 저 에 추가 합 니 다.
현재 서버 에서 가 져 온 메시지 형식 에 음성 형식 이 추가 되 었 습 니 다.음성 형식 메 시 지 는 json 형식 으로 음성 파일 url 주소, 음성 길이, 스마트 번역 정 보 를 포함 합 니 다.
실현 방향:
프로젝트 1. 웹 브 라 우 저 에서 html 5 audio 탭 을 직접 생 성하 고 브 라 우 저의 재생 기능 을 사용 합 니 다.
프로젝트 2. 웹 브 라 우 저 에서 링크 를 만 들 고 window. external. XXXX 를 사용 하여 Winform 프로그램의 구성 요 소 를 호출 하여 음성 을 재생 합 니 다.
프로젝트 1 시도 과정
웹 브 라 우 저의 커 널 은 기본적으로 최저 버 전의 IE, 즉 IE6, 7 을 사용 합 니 다. html 5 에 대한 지원 이 타당 하지 않 은 것 으로 알려 져 있 습 니 다.
다행히 제3자 플러그 인 html5media. js 를 접 한 적 이 있 습 니 다. 낮은 버 전 IE 의 경우 audio 라벨 을 object 태그 로 바 꾸 고 내 장 된 Flowplayer Flash 플러그 인 으로 재생 할 수 있 습 니 다. 테스트 를 통 해 낮은 버 전 IE 는 역시 지원 합 니 다.
배치 방법: 웹 브 라 우 저 머리 에 html 5media. js 에 대한 인용 을 직접 추가 합 니 다. 주의: 내부 네트워크 환경 은 플러그 인 을 다운로드 하여 자신의 서버 에 배치 해 야 합 니 다. 홈 페이지 CDN 의 주 소 를 직접 사용 할 수 없습니다.설치 방법 은 폴 더 전 체 를 뇌 없 이 복사 하면 됩 니 다. 내 장 된 flow player. swf 등 구성 요 소 를 빠 뜨리 지 마 세 요.
IE 에서 먼저 테스트 를 실행 하고 샌 드 박스 오 류 를 직접 보고 합 니 다. flow player. swf 에 접근 할 수 없습니다. 검색 해 보 았 습 니 다. 로 컬 테스트 파일 을 IIS 테스트 사이트 에 배치 하고 정상적으로 방 문 했 습 니 다. MP3 파일 을 찾 아 완벽 하 게 재생 할 수 있 습 니 다.
회사 의 음성 파일 형식 이 aac 이기 때문에 실제 음성 파일 테스트 를 해 보 니 flowplayer 에서 aac 파일 을 지원 할 수 없습니다.그래, 네가 이 겼 다.
호 환 플러그 인 은 사용 할 수 없 을 것 같 습 니 다. 웹 브 라 우 저 커 널 을 Chrome 커 널 로 바 꿀 까요?
인터넷 에 기 존의 플러그 인 이 많 습 니 다. Gecko 와 Cef 를 시 도 했 습 니 다. Gecko 의 코드 가 끝 난 후에 도 audio 라벨 을 지원 하지 않 는 다 는 것 을 알 게 되 었 습 니 다. 커 널 은 확실히 chrome 입 니 다. Cef 는 다른 네티즌 들 이 audio 라벨 에 도 지원 하지 않 는 다 고 말 하 는 것 을 보고 과감하게 포기 하 였 습 니 다.
방안 이 통 하지 않 는 다.
방안 2 시도 과정
. NET 검색 Winform 에서 음성 을 재생 합 니 다. 첫 번 째 플러그 인 은 NAudio 입 니 다.현재 버 전 1.8, GitHub 오픈 소스
직접 nuget 으로 설치 할 수 있 고 패키지 설치 관리 명령 행 입력 install-package NAudio 으로 설치 할 수 있 습 니 다.제 프로젝트 코드 는 Framework 2.0 이기 때문에 Nuget 은 프로젝트 프레임 워 크 가 너무 낮 다 는 것 을 알려 줍 니 다.
어 쩔 수 없 이 최근 Framework 2.0 을 지원 하 는 버 전 은 1.6 입 니 다. 그래서 install-package NAudio -version 1.6 NAudio 는 상당히 깨끗 한 플러그 인 입 니 다. 자신의 NAudio. dll 을 제외 하고 의존 하 는 dll 파일 을 추가 하지 않 았 습 니 다. 소스 코드 에 따 르 면 주로 호출 된 system 32 의 dll 이 어야 합 니 다.
OK, MP3 파일 재생 을 시험 해 보 세 요. 문제 없어 요.
AAC 파일 재생 시험 해 봐, 안 돼...홈 페이지 를 조회 하려 면 Media Foundation Transforms 가 필요 하고 Win 7 이상 만 지원 하 며 NAudio 1.7 이상 만 지원 합 니 다.
어 쩔 수 없 이 hack 방법 이 생각 났 습 니 다. 다른 미디어 Foundation 구성 요소 winserver 2012 서버 IIS 사이트 가 설 치 된 것 을 중간 으로 하고 NAudio 를 사용 하여 음성 을 wav 형식 으로 변환 한 후 클 라 이언 트 에 보 냅 니 다.
해 봤 더 니 과연 됐 군!테스트 서버 에 배치 해 보 니 오류 가 발생 했 습 니 다.
구성 요소 media fornidation 을 설치 해 야 합 니 다. 설치 후 오류 가 발생 했 습 니 다.
테스트 서버 가 음성 url 로 연결 되 지 않 을 수도 있다 는 생각 에 url 을 바 꾸 려 고 시 도 했 습 니 다. 서버 에 직접 접근 한 후에 다른 오 류 를 실행 하려 고 시도 하 였 습 니 다.
server 2012 에서 url 읽 기 음성 파일 을 지원 하지 않 기 때문에 웹 클 라 이언 트 를 사용 하여 먼저 다운로드 한 다음 로 컬 에서 읽 은 다음 파일 을 삭제 합 니 다.
테스트 성공!
참고 문서
https://www.codeproject.com/articles/501521/how-to-convert-between-most-audio-formats-in-net
http://stackoverflow.com/a/18333982/7706556
Media Foundation Transforms
다음으로 전송:https://www.cnblogs.com/enigmaxp/p/8601314.html

좋은 웹페이지 즐겨찾기