title: How to set up Streaming audio with MediaExtractor and MediaCodec?
body: <p>I am trying to stream incoming AMR_NB.  I can't use MediaPlayer directly because it requires a seekable file.  I would like to use MediaCodec, but to use MediaCodec I need (I think... please correct me!) MediaExtractor to give me things like the presentationTime.  Is that true?  Can I use MediaCodec without MediaExtractor?</p>
  
  <p>MediaExtractor seems to require seekable files.  The documentation only specifically says so for one of the setDataSource operations but when I tried to use any of the others it failed due to failed seek attempts.</p>
  
  <p>So, what can I do to get my incoming AMR stream to play?  I am aware of a scheme where by you save incoming data to a file and periodically make a copy of that file to feed to MediaPlayer but I'd really prefer to find a real honest streaming solution.  </p>
  
  <p>Is it possible to use MediaCodec without using MediaExtractor?  If so how do I find presentation time and the string to pass to MediaCodec.createDecoderByType?  The documentation SAYS that "audio/3gpp" is what I want but when I attempt to use that I get the following error:</p>
  
  <pre><code>codec = MediaCodec.createDecoderByType("audio/3gpp");
  
  01-02 03:59:36.980: E/OMXMaster(21605): A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
  </code></pre>
  
  <p>So I'm not sure how to get at MediaCodec either.</p>