情况是这样的 我要播放的mp3 都是加过密的
我需要解密后才能正常的播放 那么就用到了linux的fifo管道
代码如下:final String mFifoPath = this.getFilesDir().getAbsolutePath() +"/.mp3fifo.mp3";
int ret = Decrypt.mkfifo(mFifoPath);
if(ret == 0) {
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Decrypt.decrypt(mFifoPath,path);
}
}).start();
}
mMediaPlayer.setDataSource((new FileInputStream(new File(mFifoPath))).getFD());// 设置数据源
道理就是初始化一个fifo文件 然后呢将自己的文件放入到fifo文件管道中 并且解密:
SmartQMP3Decrypt.swfdecrypt(mFifoPath,path); 就是这句代码
这个是用到jni的调用了 代码不方便全部给出然后mMediaPlayer.setDataSource((new FileInputStream(new File(mFifoPath))).getFD());
设置数据源为 我的这个fifopath中 fifo是一种读写同步的文件 这个文件在用完后会是空的 没数据 我这这样理解的 不知道可对 现在代码运行都是在setDataSource 方法出报错 :
IOException: setDataSourceFD failed.: status=0x80000000 不知道为什么 麻烦有没有大牛能指点指点
我需要解密后才能正常的播放 那么就用到了linux的fifo管道
代码如下:final String mFifoPath = this.getFilesDir().getAbsolutePath() +"/.mp3fifo.mp3";
int ret = Decrypt.mkfifo(mFifoPath);
if(ret == 0) {
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Decrypt.decrypt(mFifoPath,path);
}
}).start();
}
mMediaPlayer.setDataSource((new FileInputStream(new File(mFifoPath))).getFD());// 设置数据源
道理就是初始化一个fifo文件 然后呢将自己的文件放入到fifo文件管道中 并且解密:
SmartQMP3Decrypt.swfdecrypt(mFifoPath,path); 就是这句代码
这个是用到jni的调用了 代码不方便全部给出然后mMediaPlayer.setDataSource((new FileInputStream(new File(mFifoPath))).getFD());
设置数据源为 我的这个fifopath中 fifo是一种读写同步的文件 这个文件在用完后会是空的 没数据 我这这样理解的 不知道可对 现在代码运行都是在setDataSource 方法出报错 :
IOException: setDataSourceFD failed.: status=0x80000000 不知道为什么 麻烦有没有大牛能指点指点
我遇到过类似问题
我遇到过类似的问题
我遇到过类似的问题
代码执行时 fifo会 broken pipe的错误
所以我想可能不是这个原因
不知道是不是 MediaPlayer 本身的机制导致的