在python中检索mp3元数据的最佳方法是什么?我已经看到了几个框架,但我不确定哪个框架最好用......哪有想法?
我怎样才能发挥.mp3
和.wav
在我的Java应用程序文件?我正在使用Swing.我尝试在互联网上寻找类似这样的例子:
public void playSound() {
try {
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("D:/MusicPlayer/fml.mp3").getAbsoluteFile());
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
} catch(Exception ex) {
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这只会播放.wav
文件.
同样的:
http://www.javaworld.com/javaworld/javatips/jw-javatip24.html
我希望能够使用相同的方法播放.mp3
文件和.wav
文件.
我正在尝试决定选择哪种mime类型来返回mp3数据(由php提供)
根据这个mime类型列表:http://www.webmaster-toolkit.com/mime-types.shtml
.mp3 audio/mpeg3
.mp3 audio/x-mpeg-3
.mp3 video/mpeg
.mp3 video/x-mpeg
Run Code Online (Sandbox Code Playgroud)
这些之间有什么区别,我应该使用哪个?
原始问题
我希望能够从现有的MP3文件生成一个新的(完全有效的)MP3文件,用作预览 - 先试后买的风格.新文件应仅包含曲目的前n秒.
现在,我知道我可以在传送文件时在n秒(从比特率和标题大小计算)"切断流" ,但这有点脏,并且在VBR轨道上是真正的PITA.我希望能够生成一个合适的MP3文件.
任何想法?
答案
这两个mp3split
和ffmpeg
都是很好的解决方案.我选择了ffmpeg,因为它通常安装在Linux服务器上,也很容易用于Windows.这里有一些更好的命令行参数,用于使用ffmpeg生成预览
-t <seconds>
在指定的秒数后切断-y
强制文件覆盖-ab <bitrate>
设置比特率,例如-ab 96k-ar <rate Hz>
设置采样率,例如-ar 22050为22.05kHz-map_meta_data <outfile>:<infile>
将跟踪元数据从infile复制到outfile而不是设置-ab和-ar,您可以像Tim Farley建议的那样复制原始曲目设置:
-acodec copy
C#中是否有一种方法可以直接从System.IO.Stream播放音频(例如MP3),例如从WebRequest返回而不将数据临时保存到磁盘?
在NAudio 1.3 的帮助下,可以:
如果能够播放半载MP3文件本来不错,但由于NAudio库设计,这似乎是不可能的.
这是完成工作的功能:
public static void PlayMp3FromUrl(string url)
{
using (Stream ms = new MemoryStream())
{
using (Stream stream = WebRequest.Create(url)
.GetResponse().GetResponseStream())
{
byte[] buffer = new byte[32768];
int read;
while ((read = stream.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
}
ms.Position = 0;
using (WaveStream blockAlignedStream =
new BlockAlignReductionStream(
WaveFormatConversionStream.CreatePcmStream(
new Mp3FileReader(ms))))
{
using (WaveOut waveOut = new WaveOut(WaveCallbackInfo.FunctionCallback()))
{ …
Run Code Online (Sandbox Code Playgroud) 有没有特殊原因导致Firefox不支持<audio>
元素中的MP3文件播放,只有Ogg格式?
这是许可问题吗?
是否有任何可能的未来实施计划?
是否有可能开发一个插件来支持<audio>
元素中的MP3播放?
我一直在尝试使用Android内置的MediaPlayer类来流式传输mp3.文档会告诉我,这应该像以下一样简单:
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(URL_OF_FILE);
mp.prepare();
mp.start();
Run Code Online (Sandbox Code Playgroud)
但是我反复得到以下内容.我也尝试过不同的URL.请不要告诉我流式传输不适用于mp3.
E/PlayerDriver( 31): Command PLAYER_SET_DATA_SOURCE completed with an error or info PVMFErrNotSupported
W/PlayerDriver( 31): PVMFInfoErrorHandlingComplete
E/MediaPlayer( 198): error (1, -4)
E/MediaPlayer( 198): start called in state 0
E/MediaPlayer( 198): error (-38, 0)
E/MediaPlayer( 198): Error (1,-4)
E/MediaPlayer( 198): Error (-38,0)
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢,谢谢S
我有很多很多mp3文件,我想将它们合并到一个文件中.我使用了命令行方法
copy /b 1.mp3+2.mp3 3.mp3
Run Code Online (Sandbox Code Playgroud)
但是当它们很多并且它们的命名不一致时,它会很痛苦.时间似乎永远不会出现.
我想从python播放我的歌曲(mp3),你能给我一个最简单的命令吗?
这不正确:
import wave
w = wave.open("e:/LOCAL/Betrayer/Metalik Klinik1-Anak Sekolah.mp3","r")
Run Code Online (Sandbox Code Playgroud)