我试图播放一个MP3文件,从以前的UIView (存储在一个NSURL *fileURLvariables)传递给UIView 。 我正在初始化一个AVPlayer : player = [AVPlayer playerWithURL:fileURL]; NSLog(@"Player created:%d",player.status); NSLog打印Player created:0,我想这意味着它还没有准备好播放呢。 当我点击播放UIButton ,我运行的代码是: -(IBAction)playButtonClicked { NSLog(@"Clicked Play. MP3:%@",[fileURL absoluteString]); if(([player status] == AVPlayerStatusReadyToPlay) && !isPlaying) // if(!isPlaying) { [player play]; NSLog(@"Playing:%@ with %d",[fileURL absoluteString], player.status); isPlaying = YES; } else if(isPlaying) { [player pause]; NSLog(@"Pausing:%@",[fileURL absoluteString]); isPlaying = NO; } else { […]
我一直在使用Node.js中的二进制stream进行试验,我非常惊讶,实际上有一个工作演示,使用节点无线电stream接收Shoutcaststream,并使用分块编码将其推送到HTML5元素中。 但它只适用于Safari浏览器! 这是我的服务器代码: var radio = require("radio-stream"); var http = require('http'); var url = "http://67.205.85.183:7714"; var stream = radio.createReadStream(url); var clients = []; stream.on("connect", function() { console.error("Radio Stream connected!"); console.error(stream.headers); }); // When a chunk of data is received on the stream, push it to all connected clients stream.on("data", function (chunk) { if (clients.length > […]
我想录制现场audio并播放它。就用户界面而言,该应用程序只有三个button:一个用于开始录制和stream式传输,一个用于播放预先录制的文件和最后一个用于停止当前任务(录制/播放)。 为此,我分别使用了AudioRecord和AudioTrack类进行录制和播放。 我的程序看起来像…. / ** * @作者阿米特* * / public class AudioRecorder extends Activity { private String LOG_TAG = null; /* variables which are required to generate and manage the UI of the App */ // private RecordButton mRecordButton = null; private Button recordBtn, stopBtn, playBtn; /* * variables which are required for the actual […]
我听到有关这方面的一些相互矛盾的报道。 我想要做的是从一个URLstream媒体文件。 我已经做了几个小时的研究,但是我找不到有关如何做这件事的好的指南,甚至找不到什么样的audio播放器。 有些朋友告诉我,AVPlayer可以播放MP3,但苹果文件说,它不能。 我倒了Matt Gallagher的audiostream式传输器(http://www.cocoawithlove.com/2008/09/streaming-and-playing-live-mp3-stream.html),但是那个代码很好,我已经足够新了,很难通过autoreleases和保留所有这一切。 我试图stream的audio是一个相当大的MP3文件从libsyn服务器,与格式的URL .. http://traffic.libsyn.com/podcastname/episode.mp3 所有我需要做的就是抓住它并开始玩,暂停和擦洗的能力。 所以首先,CAN AVPlayerstreamMP3的东西? 如果有的话,是否有人有指导或代码,他们可以指向我? 如果没有,有什么样的audio播放器类可以stream式audio? 我已经尝试创build一个AVPlayerItem,初始化的URL,然后将其添加到一个AVPlayer,但我得到了一吨错误加载…和符号未find…错误。 我会很感激这方面的任何信息,谢谢!
我发现Android MediaPlayer准备用不同的stream进行实况stream播放的时间差异很大。 硬数据 我在prepareAsync()和onPrepared(MediaPlayer mp)callback之间添加了日志logging,并且每次testing多个stream几次。 每个stream的时间非常一致(+/- 1秒),这里是结果: MPR新闻stream:27秒(http://newsstream1.publicradio.org:80/) MPR古典音乐stream:15秒(http://classicalstream1.publicradio.org:80/) MPR当前stream:7秒(http://currentstream1.publicradio.org:80/) PRIstream:52秒(http://pri-ice.streamguys.biz/pri1) testing是在Android 2.3.4上通过3G连接(〜1100 Kbps)在Nexus S上进行的。 播放非stream式MP3audio文件不是问题。 这里是我如何玩这些溪stream的片段: 准备MediaPlayer: … mediaPlayer.setDataSource(playUrl); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.prepareAsync(); … 然后在onPrepared(MediaPlayer mp)上: mediaPlayer.start(); 为什么要准备一些stream而不是其他的stream? 上面的数据似乎表明,它可能是基于缓冲的数据量 ,而不是缓冲的audio内容的持续时间 。 这真的可以吗? 更新:我testing了使用Android 1.6,2.2和2.3.4以及1.6,2.1,2.2,2.3.1和2.3.3模拟器的实际stream媒体。 我只看到了2.3.3和2.3.4的长时间延迟。 旧版本在5秒内开始播放。
基本上,我现在想要做的是使用Android设备作为A2DP接收器,当配对build立时,android会播放从发送器接收到的声音。 我担心,如果我使用STPconfiguration文件,可能会导致stream式传输延迟。 所以,我想使用A2DP,但是这可能使用Android设备作为A2DP的接收器? 以及如何做到这一点?
我一直在尝试通过使用内置MediaPlayer类的Android来传输mp3。 这个文档会告诉我,这应该和以下一样简单: MediaPlayer mp = new MediaPlayer(); mp.setDataSource(URL_OF_FILE); mp.prepare(); mp.start(); 但是我反复得到以下几点。 我也尝试了不同的url。 请不要告诉我,stream式传输不适用于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) 任何帮助非常感谢,谢谢S
我正在尝试将Android设备上的实时麦克风audiostream式传输到Java程序。 我开始发送两个Android设备之间的现场audio,以确认我的方法是正确的。 接收设备上几乎没有任何延迟,audio可以被完美地听到。 接下来,我将相同的audiostream发送到一个小型的Java程序,并validation数据是否正确发送。 现在我想要做的就是对这些数据进行编码,并以某种方式在运行Java程序的服务器上播放它。 我宁愿使用HTML5或JavaScript在networking浏览器中播放它,但我愿意使用VLC等替代方法。 这里是发送现场麦克风audio的Android应用程序的代码 public class MainActivity extends Activity { private Button startButton,stopButton; public byte[] buffer; public static DatagramSocket socket; AudioRecord recorder; private int sampleRate = 44100; private int channelConfig = AudioFormat.CHANNEL_CONFIGURATION_MONO; private int audioFormat = AudioFormat.ENCODING_PCM_16BIT; int minBufSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat); private boolean status = true; @Override protected void onCreate(Bundle […]
请参阅我用于stream式shoutcaststream的代码,它可以使用一个URL,但不能与另一个URL一起使用。 这个工作: Uri myUri = Uri.parse("http://fr3.ah.fm:9000/"); 但不是这个: Uri myUri = Uri.parse("http://someOtherURL"); SimpleMusicStream.java import android.app.Activity; import android.media.AudioManager; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; public class SimpleMusicStream extends Activity implements MediaPlayer.OnCompletionListener, MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener, MediaPlayer.OnBufferingUpdateListener { private String TAG = getClass().getSimpleName(); private MediaPlayer mp = null; private Button play; private Button pause; […]
编辑: Android 2.2 MediaPlayer可以正常工作,只有一个SHOUTcast URL,但不能用另一个SHOUTcast URL 我需要从外部URL(shoutcaststream)播放audio文件。 目前,audio文件是逐步下载的,只要我们在手机本地临时存储中获得足够的audio,就会播放。 我正在使用StreamingMediaPlayer类 。 检查这段代码: private MediaPlayer createMediaPlayer(File mediaFile) throws IOException { MediaPlayer mPlayer = new MediaPlayer(); //example of mediaFile =/data/data/package/cache/playingMedia0.dat FileInputStream fis = new FileInputStream(mediaFile); mPlayer.setDataSource(fis.getFD()); mPlayer.prepare(); return mPlayer; } 现状: 1 – 它从Android 1.6到2.1,但不是像Android 2.2更高的版本,工作正常。 2-“mPlayer.setDataSource(fis.getFD())”是抛出错误的行。 3-错误是“无法创build媒体播放器” 其他解决scheme尝试 我尝试了下面的替代解决scheme,但没有任何工作到目 Android 2.2 MediaPlayer可以正常工作,只有一个SHOUTcast URL,但不能用另一个SHOUTcast URL 我在找什么? 我的目标是有一个Android 2.1及更高版本的代码的和平。 […]