NAudio를 사용하여 cryptoStream에서 mp3를 재생하는 방법은 무엇입니까?

user3313540

.NET System.Media.SoundPlayer를 사용하여 메모리 스트림에서 wav 파일을 재생하는 기존 프로그램이 있습니다. 이렇게해야하는 이유는 wav 파일이 디스크에서 암호화되어 있기 때문입니다. 메모리 스트림으로 해독하고 해당 스트림을 플레이어에 공급합니다. 잘 작동합니다.

그러나 나는 차라리 mp3를 사용하고 싶습니다 ... 그들은 더 작습니다. 솔루션으로 NAudio를 탐색하고 있지만 암호화 스트림에서 mp3를 재생하는 방법을 알 수 없습니다.

현재 암호화 된 wav 파일을 재생하는 데 사용하는 코드는 다음과 같습니다.

public void PlayEncMP3(String sourceFile)
{
    FileStream input = new FileStream(sourceFile, FileMode.Open, FileAccess.Read);
    DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider();
    cryptic.Key = ASCIIEncoding.ASCII.GetBytes("64BITKEY");
    cryptic.IV = ASCIIEncoding.ASCII.GetBytes("64BIT_IV");

    CryptoStream crStream = new CryptoStream(input, cryptic.CreateDecryptor(), CryptoStreamMode.Read);

    MainPlayer = new SoundPlayer(crStream);
    MainPlayer.Play();
}

이 코드는 완벽하게 작동합니다. 암호화 된 wav 파일을 열고 복호화 한 다음, wav 파일을 정상적으로 재생하는 플레이어에 메모리 스트림으로 복호화 된 wav 파일을 공급합니다.

나는 NAudio로 이것을 시도했지만 (이 질문에서 가져온 코드 : C #을 사용하여 스트림에서 오디오 재생 ) 코드에서 cryptoStream이 검색을 지원하지 않는다는 예외가 발생하여 blockAlignedStream을 만들지 못했습니다.

public void PlayEncMP3(String sourceFile)
{
    //FileInfo info = new FileInfo(sourceFile);
    FileStream input = new FileStream(sourceFile, FileMode.Open, FileAccess.Read);
    DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider();
    cryptic.Key = ASCIIEncoding.ASCII.GetBytes("64BITKEY");
    cryptic.IV = ASCIIEncoding.ASCII.GetBytes("64BIT_IV");

    CryptoStream crStream = new CryptoStream(input, cryptic.CreateDecryptor(), CryptoStreamMode.Read);

    using (WaveStream blockAlignedStream =
        new BlockAlignReductionStream(
            WaveFormatConversionStream.CreatePcmStream(
                new Mp3FileReader(crStream))))
    {
        using (WaveOut waveOut = new WaveOut(WaveCallbackInfo.FunctionCallback()))
        {
            waveOut.Init(blockAlignedStream);
            waveOut.Play();
            while (waveOut.PlaybackState == PlaybackState.Playing)
            {
                System.Threading.Thread.Sleep(100);
            }
        }
    }
}

이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

편집 : 블록 정렬 스트림을 완전히 제거하고 waveOut.Init에서 cryptoStream (blockAlignedStream 대신)을 사용하려고 시도했지만 cryptoStream을 NAudio.Wave.IWaveProvider로 변환 할 수 없습니다.

마크 히스

Mp3FileReader는 먼저 목차를 작성하려고 시도하기 때문에 검색 가능한 스트림 없이는 사용할 수 없으며 재생 중 위치 변경도 지원합니다. 따라서 먼저 전체 MP3를 메모리 스트림으로 읽어 들인 다음 Mp3FileReader에 제공해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Qualtrics에서 Java 스크립트를 사용하여 재생할 mp3 파일을 제어하는 방법은 무엇입니까?

분류에서Dev

NAudio를 사용하여 MP3를 스트리밍하는 동안 현재 시간을 얻는 방법은 무엇입니까?

분류에서Dev

DirectSound를 사용하여 Stream에서 MP3를 재생하는 방법

분류에서Dev

서버에서 여러 mp3 (wav)를 연결하는 방법은 무엇입니까?

분류에서Dev

NAudio를 사용하여 mp3에서 오디오 샘플 데이터를 가져 오는 방법

분류에서Dev

javascript 또는 jquery를 사용하여 버튼 클릭으로 여러 mp3 파일을 차례로 재생하는 방법은 무엇입니까?

분류에서Dev

VLC 또는 Audacity를 사용하여 한 번에 여러 파일 (예 : wav를 mp3로)을 변환하는 방법은 무엇입니까?

분류에서Dev

NAudio MFT를 사용하여 ogg에서 mp3로

분류에서Dev

FFMpeg를 사용하여 mp3 파일의 시작과 끝에서만 침묵을 트리밍하는 방법은 무엇입니까?

분류에서Dev

JavaScript를 사용하여 Dailymotion에서 비디오를 재생하는 방법은 무엇입니까?

분류에서Dev

URL에서 mp3를 재생하는 방법

분류에서Dev

MP3 파일에서 앨범 표지 이미지를 추출하는 방법은 무엇입니까?

분류에서Dev

PDF 파일에서 MP3를 추출하는 방법은 무엇입니까?

분류에서Dev

mp3 파일에서 세부 정보를 추출하는 방법은 무엇입니까?

분류에서Dev

Moonlight를 사용하여 rtlmost.hu에서 동영상을 재생하는 방법은 무엇입니까?

분류에서Dev

Python에서 거북이 모듈을 사용하여 GIF를 재생하는 방법은 무엇입니까?

분류에서Dev

Moonlight를 사용하여 rtlmost.hu에서 동영상을 재생하는 방법은 무엇입니까?

분류에서Dev

MPMusicPlayerController를 사용하여 특정 인덱스에서 MPMediaItemCollection을 재생하는 방법은 무엇입니까?

분류에서Dev

iOS에서 OpenGL을 사용하여 비디오를 재생하는 방법은 무엇입니까?

분류에서Dev

DLNA 서버를 사용하여 자막이있는 영화를 재생하는 방법은 무엇입니까?

분류에서Dev

Jquery에서 JS var를 사용하는 방법 (MP3 재생 목록)

분류에서Dev

다운로드 한 팟 캐스트 mp3를 Banshee에 등록하는 방법은 무엇입니까?

분류에서Dev

다운로드 한 팟 캐스트 mp3를 Banshee에 등록하는 방법은 무엇입니까?

분류에서Dev

Sox에 MP3 핸들러를 추가하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트를 사용하여 MP3 배열에서 무작위로 오디오를 재생하는 방법

분류에서Dev

CrossMediaManager를 사용하여 Xamarin.Forms의 certian 위치에서 MP3 파일을 재생하는 방법

분류에서Dev

C ++에서 사운드를 재생하는 방법은 무엇입니까?

분류에서Dev

Banshee에서 MP3 플레이어로 재생 목록을 복사하는 방법은 무엇입니까?

분류에서Dev

Banshee에서 MP3 플레이어로 재생 목록을 복사하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Qualtrics에서 Java 스크립트를 사용하여 재생할 mp3 파일을 제어하는 방법은 무엇입니까?

  2. 2

    NAudio를 사용하여 MP3를 스트리밍하는 동안 현재 시간을 얻는 방법은 무엇입니까?

  3. 3

    DirectSound를 사용하여 Stream에서 MP3를 재생하는 방법

  4. 4

    서버에서 여러 mp3 (wav)를 연결하는 방법은 무엇입니까?

  5. 5

    NAudio를 사용하여 mp3에서 오디오 샘플 데이터를 가져 오는 방법

  6. 6

    javascript 또는 jquery를 사용하여 버튼 클릭으로 여러 mp3 파일을 차례로 재생하는 방법은 무엇입니까?

  7. 7

    VLC 또는 Audacity를 사용하여 한 번에 여러 파일 (예 : wav를 mp3로)을 변환하는 방법은 무엇입니까?

  8. 8

    NAudio MFT를 사용하여 ogg에서 mp3로

  9. 9

    FFMpeg를 사용하여 mp3 파일의 시작과 끝에서만 침묵을 트리밍하는 방법은 무엇입니까?

  10. 10

    JavaScript를 사용하여 Dailymotion에서 비디오를 재생하는 방법은 무엇입니까?

  11. 11

    URL에서 mp3를 재생하는 방법

  12. 12

    MP3 파일에서 앨범 표지 이미지를 추출하는 방법은 무엇입니까?

  13. 13

    PDF 파일에서 MP3를 추출하는 방법은 무엇입니까?

  14. 14

    mp3 파일에서 세부 정보를 추출하는 방법은 무엇입니까?

  15. 15

    Moonlight를 사용하여 rtlmost.hu에서 동영상을 재생하는 방법은 무엇입니까?

  16. 16

    Python에서 거북이 모듈을 사용하여 GIF를 재생하는 방법은 무엇입니까?

  17. 17

    Moonlight를 사용하여 rtlmost.hu에서 동영상을 재생하는 방법은 무엇입니까?

  18. 18

    MPMusicPlayerController를 사용하여 특정 인덱스에서 MPMediaItemCollection을 재생하는 방법은 무엇입니까?

  19. 19

    iOS에서 OpenGL을 사용하여 비디오를 재생하는 방법은 무엇입니까?

  20. 20

    DLNA 서버를 사용하여 자막이있는 영화를 재생하는 방법은 무엇입니까?

  21. 21

    Jquery에서 JS var를 사용하는 방법 (MP3 재생 목록)

  22. 22

    다운로드 한 팟 캐스트 mp3를 Banshee에 등록하는 방법은 무엇입니까?

  23. 23

    다운로드 한 팟 캐스트 mp3를 Banshee에 등록하는 방법은 무엇입니까?

  24. 24

    Sox에 MP3 핸들러를 추가하는 방법은 무엇입니까?

  25. 25

    자바 스크립트를 사용하여 MP3 배열에서 무작위로 오디오를 재생하는 방법

  26. 26

    CrossMediaManager를 사용하여 Xamarin.Forms의 certian 위치에서 MP3 파일을 재생하는 방법

  27. 27

    C ++에서 사운드를 재생하는 방법은 무엇입니까?

  28. 28

    Banshee에서 MP3 플레이어로 재생 목록을 복사하는 방법은 무엇입니까?

  29. 29

    Banshee에서 MP3 플레이어로 재생 목록을 복사하는 방법은 무엇입니까?

뜨겁다태그

보관