如何规范NSURL,特别是移除端口? http://en.wikipedia.org/wiki/URL_normalization
答案 0 :(得分:2)
您可以编写代码来执行规范化。 NSURL
可能会为您做一些事情,但我认为没有记录这样做。
删除端口号不一定适用于规范化,但您可以这样做。
在这两种情况下,NSURLComponents
都可以通过解构网址并让您轻松地与每个组件部分进行交互,根据需要删除或修改它来帮助您。
答案 1 :(得分:1)
正如Wain的回答所述,public class MainActivity extends AppCompatActivity{
Button start, stop;
public MediaRecorder recorder = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
start = (Button) findViewById(R.id.start_button);
stop = (Button) findViewById(R.id.stop_button);
start.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.start_button:
startRecord();break;
case R.id.stop_button:
stopRecord(); break;
}
}
}
);
}
public void startRecord() {
recorder = new MediaRecorder();
recorder.reset();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(getFilePath());
try {
recorder.prepare();
recorder.start();
} catch (Exception e) {
e.printStackTrace();
}
}
public void stopRecord() {
if(recorder!=null) {
System.out.println("Stop Pressed");
recorder.stop();
recorder.reset();
recorder.release();
recorder = null;
}
}
private String getFilePath() {
String filepath = Environment.getExternalStorageDirectory().getPath();
File file = new File(filepath, "Audio Capture");
if (!file.exists())
file.mkdirs();
filepath=file.getAbsolutePath()+"/Record.mp4";
System.out.println(filepath);
return (filepath);
}
}
允许您解构URL并使用您规范化的组件重新构建新URL。但是,URL规范化是特定于方案的(即规范化http URL与规范化文件URL非常不同),因此您必须知道正在使用的URL方案的语法。