相关疑难解决方法(0)

任何人都有MediaPlayer使用ParcelFileDescriptor和createPipe()?

有关我最近的问题MediaRecordercreatePipe()和的讨论createPipe()技术,这个其他SO问题,我现在正在试图获得MediaPlayer与所服务的内容合作ContentProvider通过ParcelFileDescriptorcreatePipe().

这个示例项目是我迄今为止的工作.它基于较早的示例,该示例播放存储为原始资源的OGG剪辑.因此,我知道我的剪辑很好.

我已将MediaPlayer设置更改为:

  private void loadClip() {
    try {
      mp=new MediaPlayer();
      mp.setDataSource(this,
                       PipeProvider.CONTENT_URI.buildUpon()
                                               .appendPath("clip.ogg")
                                               .build());
      mp.setOnCompletionListener(this);
      mp.prepare();
    }
    catch (Exception e) {
      goBlooey(e);
    }
  }
Run Code Online (Sandbox Code Playgroud)

通过登录PipeProvider,我发现我的Uri构建正确.

PipeProvider此示例项目中的相同,适用于将PDF提供给Adobe Reader,这限制了我的代码的使用方式.:-)

具体来说,openFile()创建一个管道ParcelFileDescriptor:

  @Override
  public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
    ParcelFileDescriptor[] pipe=null;

    try {
      pipe=ParcelFileDescriptor.createPipe();
      AssetManager assets=getContext().getResources().getAssets();

      new …
Run Code Online (Sandbox Code Playgroud)

android android-mediaplayer

17
推荐指数
2
解决办法
6180
查看次数

标签 统计

android ×1

android-mediaplayer ×1