DOUAudioDecoder.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /* vim: set ft=objc fenc=utf-8 sw=2 ts=2 et: */
  2. /*
  3. * DOUAudioStreamer - A Core Audio based streaming audio player for iOS/Mac:
  4. *
  5. * https://github.com/douban/DOUAudioStreamer
  6. *
  7. * Copyright 2013-2016 Douban Inc. All rights reserved.
  8. *
  9. * Use and distribution licensed under the BSD license. See
  10. * the LICENSE file for full text.
  11. *
  12. * Authors:
  13. * Chongyu Zhu <i@lembacon.com>
  14. *
  15. */
  16. #import <Foundation/Foundation.h>
  17. #include <CoreAudio/CoreAudioTypes.h>
  18. typedef NS_ENUM(NSUInteger, DOUAudioDecoderStatus) {
  19. DOUAudioDecoderSucceeded,
  20. DOUAudioDecoderFailed,
  21. DOUAudioDecoderEndEncountered,
  22. DOUAudioDecoderWaiting
  23. };
  24. @class DOUAudioPlaybackItem;
  25. @class DOUAudioLPCM;
  26. @interface DOUAudioDecoder : NSObject
  27. + (AudioStreamBasicDescription)defaultOutputFormat;
  28. + (instancetype)decoderWithPlaybackItem:(DOUAudioPlaybackItem *)playbackItem
  29. bufferSize:(NSUInteger)bufferSize;
  30. - (instancetype)initWithPlaybackItem:(DOUAudioPlaybackItem *)playbackItem
  31. bufferSize:(NSUInteger)bufferSize;
  32. - (BOOL)setUp;
  33. - (void)tearDown;
  34. - (DOUAudioDecoderStatus)decodeOnce;
  35. - (void)seekToTime:(NSUInteger)milliseconds;
  36. @property (nonatomic, readonly) DOUAudioPlaybackItem *playbackItem;
  37. @property (nonatomic, readonly) DOUAudioLPCM *lpcm;
  38. @end