我正在阅读O'Reilly的学习XML书并阅读以下内容
HTML在某些方面是退步.为了实现真正有用的简单性,必须牺牲一些通用编码原则....为了回归通用编码的理想,有些人试图将SGML用于网络......事实证明这太难了.
这让我想起了StackOverflow Podcast,他们讨论了在浏览器上运行的格式不佳的HTML.
我的问题是,如果标准与开发人员希望它们一样严格,那么互联网是否仍然会成功?
我可以使用下面的代码播放Wav文件而不会出现问题.当试图以Mp3格式播放完全相同的媒体时,我只会得到乱码垃圾.我相信我从根本上误解了avcodec_decode_audio3函数的工作原理.
由于Wav文件在解码时包含PCM数据,因此可以直接进入AudioTrack.write函数.必须有一些额外的步骤才能使Mp3像这样工作.我不知道我错过了什么,但我已经把头发拉了一个星期了.
Java代码
package com.rohaupt.RRD2;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.SystemClock;
public class player extends Activity
{
private AudioTrack track;
private FileOutputStream os;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
createEngine();
MediaPlayer mp = new MediaPlayer();
mp.start();
int bufSize = AudioTrack.getMinBufferSize(32000,
AudioFormat.CHANNEL_CONFIGURATION_STEREO,
AudioFormat.ENCODING_PCM_16BIT);
track = new AudioTrack(AudioManager.STREAM_MUSIC,
32000,
AudioFormat.CHANNEL_CONFIGURATION_STEREO,
AudioFormat.ENCODING_PCM_16BIT,
bufSize,
AudioTrack.MODE_STREAM);
byte[] bytes = new …Run Code Online (Sandbox Code Playgroud)