Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Windows][macOS][iOS][tvOS] M4A audio playback via NetStream doesn't work with AIR 33 #224

Open
itlancer opened this issue Feb 5, 2020 · 3 comments

Comments

@itlancer
Copy link

itlancer commented Feb 5, 2020

Problem Description

M4A audio files playback via NetStream doesn't work with AIR 33 with Windows, macOS and also iOS/tvOS. "Correct" events dispatches and in traces it looks correctly but no audio sound at all.

It has been tested with latests AIR 33.0.2.338 and AIR 33.1.0.16 beta with many different Windows, macOS and iOS devices. Also tested with Apple TV 4K A1842 with tvOS 13.3. Tested with different M4A audio files.
Same problem in all cases.

It works fine with AIR 32.0.0.89, AIR 32.0.0.144 with Windows, macOS and Android.
Also It works fine with AIR 33.0.2.338 and AIR 33.1.0.16 beta with Android.
With iOS and tvOS it doesn't work with any AIR version.
NetStream::useHardwareDecoder=false doesn't help.

Related (not the same) issues:
#80
#211
#180
#171
#155

Steps to Reproduce

Launch code below with Windows, macOS, iOS or tvOS device. It will try to play M4A audio file.

Application example with sources and example of audio file attached.
m4a_bug.zip

package {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.events.NetStatusEvent;
	import flash.net.NetConnection;
	import flash.net.NetStream;
	
	public class M4ABug extends Sprite {
		private var _netStream:NetStream;
		private var _netConnection:NetConnection;
		
		public function M4ABug() {
			_netConnection = new NetConnection();
			_netConnection.addEventListener(IOErrorEvent.IO_ERROR, netConnection_ioError);
			_netConnection.connect(null);
			
			_netStream = new NetStream(_netConnection);
			_netStream.addEventListener(IOErrorEvent.IO_ERROR, netStream_ioError);
			_netStream.addEventListener(NetStatusEvent.NET_STATUS, netStream_netStatus);
			_netStream.client = { onMetaData : onMetaData };
			
			_netStream.play("audio.m4a");
		}
		
		private function netConnection_ioError(e:IOErrorEvent):void {
			trace("netConnection_ioError");
		}
		
		private function netStream_ioError(e:IOErrorEvent):void {
			trace("netStream_ioError");
		}
		
		private function onMetaData(metaData:Object):void {
			trace("onMetaData");
		}
		
		private function netStream_netStatus(e:NetStatusEvent):void {
			trace("netStream_netStatus", e.info.code);
		}
	}
}

Actual Result:
Meta data will be received, NetStream.Play.Start and NetStream.Buffer.Full events dispatched but no audio playback.

Expected Result:
Audio correctly playback.

Known Workarounds

none

@ged-mc
Copy link

ged-mc commented May 4, 2020

Confirming that this serious issue is still present in AIR 33-1-1-98 on Mac OSx.
We've been streaming MP4 video from Vimeo Pro for 5+ years without any problems. With AIR33 the video always stalls on the first frame. Last version to work without this issue is AIR 32-89.
Same applies to AIR 33.1.1.86 tested on both Mac and Win.

@NicolasDionB
Copy link

I confirm I have the same issue even with the latest SDK 33.1.1.300. It's really a big problem as now we have other major issues (such as #320) that have been fixed in the latest releases but I can't use them as this is a major problem for our app.

@itlancer
Copy link
Author

It works fine with latest AIR SDK 33.1.1.345 for Windows and macOS, but still doesn't work for iOS and tvOS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants