So here’s what I did to resolve this…
I inserted the following code right after the loop started:
<?php
global $post;
if( is_singular() && is_main_query() && $post->post_type === 'download' ) {
$download = new EDD_Download( $post->ID );
$files = $download->get_files( );
$submission_attachment_ids="";
if ( is_array( $files ) ){
$first = true;
foreach ( $files as $key => $value ) {
if ( !isset( $value[ 'attachment_id' ] ) ){
continue;
}
if ( $first ){
$submission_attachment_ids .= $value[ 'attachment_id' ];
$first = false;
} else {
$submission_attachment_ids .= ',' . $value[ 'attachment_id' ];
}
}
} else {
die; // no files attached to the download
}
if ( !$submission_attachment_ids || strlen( $submission_attachment_ids ) < 1 ) {
return die; // no files attached to the download
};
?>
Then, just above the content block I inserted my player call, which drops it right under the header:
<div id="player" width="100%">
<?php echo do_shortcode('');?>
</div>